2015-10-07 12 views
5

Miałem użytkownika, który uruchamiał moją aplikację na swoim iPhonie 5. Wykonał kopię zapasową za pomocą iTunes. Kupiłem nowy iPhone 6S i przywróciłem go z kopii zapasowej iTunes.Nie można określić przyczyny awarii z Xcode Crash Log

Kiedy uruchamia moją aplikację, natychmiast zawiesza się podczas uruchamiania. Dostałem od niego dzienniki awarii, ale nie ma komunikatu o błędzie. To zawiesza się podczas automatycznego generowania-applicationDocumentsDirectory w moim AppDelegate.

- (NSURL *)applicationDocumentsDirectory 
{ 
    return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]; 
} 

Czy jest jakiś sposób, aby ustalić, co poszło nie tak, aby sprawdzić, czy to jest coś, co mogę naprawić?

Incident Identifier: 3A0D56CA-EEAF-4F5A-8D16-D182E61034D5 
CrashReporter Key: 9f4ce42b70e98d925f135c618394817f9451767b 
Hardware Model:  iPhone8,1 
Process:    MyApp [1198] 
Path:    /private/var/mobile/Containers/Bundle/Application/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX/MyApp.app/MyApp 
Identifier:   com.inadaydevelopment.myapp 
Version:    1.0.1 (1.0) 
Code Type:   ARM-64 (Native) 
Parent Process:  launchd [1] 

Date/Time:   2015-10-02 14:30:25.25 -0700 
Launch Time:   2015-10-02 14:30:25.25 -0700 
OS Version:   iOS 9.0.1 (13A405) 
Report Version:  105 

Exception Type: EXC_CRASH (SIGABRT) 
Exception Codes: 0x0000000000000000, 0x0000000000000000 
Exception Note: EXC_CORPSE_NOTIFY 
Triggered by Thread: 0 

Filtered syslog: 
None found 

Thread 0 name: Dispatch queue: com.apple.main-thread 
Thread 0 Crashed: 
0 libsystem_kernel.dylib   0x000000019950b1e0 __pthread_kill + 8 
1 libsystem_pthread.dylib   0x00000001995d4f0c pthread_kill + 112 
2 libsystem_c.dylib    0x000000019947eb78 abort + 140 
3 MyApp       0x000000010001ef7c -[AppDelegate applicationDocumentsDirectory] (AppDelegate.m:517) 
4 MyApp       0x000000010001eae8 -[AppDelegate managedObjectContext] (AppDelegate.m:430) 
5 MyApp       0x000000010002d004 -[BaseViewController awakeFromNib] (BaseViewController.m:54) 
6 UIKit       0x00000001890e6058 -[UINib instantiateWithOwner:options:] + 2188 
7 UIKit       0x0000000189324ea0 -[UIStoryboard instantiateViewControllerWithIdentifier:] + 196 
8 UIKit       0x0000000189325000 -[UIStoryboard instantiateInitialViewController] + 68 
9 UIKit       0x0000000188edd178 -[UIApplication _loadMainStoryboardFileNamed:bundle:] + 108 
10 UIKit       0x0000000188caee40 -[UIApplication _loadMainInterfaceFile] + 264 
11 UIKit       0x0000000188edc068 -[UIApplication _runWithMainScene:transitionContext:completion:] + 1316 
12 UIKit       0x0000000188ed9300 -[UIApplication workspaceDidEndTransaction:] + 168 
13 FrontBoardServices    0x000000018d7737ec -[FBSSerialQueue _performNext] + 184 
14 FrontBoardServices    0x000000018d773b6c -[FBSSerialQueue _performNextFromRunLoopSource] + 56 
15 CoreFoundation     0x000000018369c5a4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24 
16 CoreFoundation     0x000000018369c038 __CFRunLoopDoSources0 + 540 
17 CoreFoundation     0x0000000183699d38 __CFRunLoopRun + 724 
18 CoreFoundation     0x00000001835c8dc0 CFRunLoopRunSpecific + 384 
19 UIKit       0x0000000188ca80c8 -[UIApplication _run] + 460 
20 UIKit       0x0000000188ca2f60 UIApplicationMain + 204 
21 MyApp       0x000000010001bdd0 main (main.m:16) 
22 libdyld.dylib     0x00000001993ee8b8 start + 4 
+0

Wygląda na to, że aplikacja szuka niektórych plików w katalogu dokumentów i niestety nie znajdują się one w katalogu doc ​​do aplikacji !!!! –

+1

Właściwie to właśnie szuka samego katalogu dokumentów, ale jeśli te katalogi nie istnieją, powinien po prostu zwrócić zero, a operowanie na zerem nigdy nie powinno się zawieszać. –

+0

Czy możesz odtworzyć to w symulatorze 6S? – chedabob

Odpowiedz

0

Podczas przesyłania wiadomości do instancji zwalnianej często zdarzają się awarie bez użytecznego śledzenia stosu. Walczyłem z tym kilka tygodni temu, kiedy kręciłem się z kategorią UIViewController.

Oczywiście masz rację, wiadomość wysłana do zera nie robi nic złego. Wiadomość wysłana do deallocated instancji czegoś z drugiej strony prowadzi do awarii.
Spróbuj włączyć ZombieObjects, otrzymasz wtedy dziennik, który pomoże ci znaleźć błąd.

+0

To nie jest coś, co mogę replikować. Stało się to na wolności i nie jest to sytuacja, w której mogę odbudować plik binarny i spróbować ponownie. –

+0

To niefortunne. Mimo to, do przyszłych testów (chyba że chcesz zobaczyć wykorzystanie pamięci w czasie rzeczywistym), nie zaszkodzi włączyć ZombieObjects. Również Instruments może być pomocny w takich sytuacjach. Miej też oko na delegata, który przypadkowo jest silnym refem na przykład. Powodzenia :) –

Powiązane problemy