2015-10-07 27 views
5

iPhone 5で自分のアプリケーションを実行しているユーザーがいました。彼はiTunesでバックアップを実行しました。新しいiPhone 6Sを購入し、iTunesのバックアップから復元しました。Xcodeクラッシュログからクラッシュの原因を特定できない

私のアプリを起動するとすぐに起動時にクラッシュします。私は彼からクラッシュログを受け取りましたが、エラーメッセージはありません。私のAppDelegateで自動生成された-applicationDocumentsDirectory関数中にクラッシュしています。

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

私が修正できるものかどうか実際に何が悪くなったのか判断する方法はありますか?

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

アプリがドキュメントディレクトリ内のいくつかのファイルを探しているようですが、残念ながらそれらはアプリケーションのdocディレクトリにありません。 –

+1

実際にはドキュメントディレクトリ自体を探していますが、それらのディレクトリがない場合は、nilを返すだけで、nilでの操作はクラッシュしないはずです。 –

+0

これを6Sシミュレータで再現できますか? – chedabob

答えて

0

有効なスタックトレースがないクラッシュは、メッセージが割り当て解除されたインスタンスに送信されたときによく発生します。 UIViewControllerカテゴリを使いこなすとき、私は数週間前にこの問題に苦労しました。

もちろん、正しいですが、nilに送信されたメッセージは問題ありません。一方、sthの割り振り解除されたインスタンスに送信されたメッセージはクラッシュします。
ZombieObjectsをオンにすると、このときにログが取得され、バグを見つけるのに役立ちます。

+0

これは私が複製できるものではありません。それは野生で起こったし、バイナリを再構築して再試行できる状況ではありません。 –

+0

それは残念です。それでも、将来のテストでは(リアルタイムでのメモリ使用量を見たい場合を除き)、ZombieObjectsを有効にするのに害はありません。また、インストゥルメントはこのような状況で役立つことがあります。デリゲートのための目を開いておくことは、間違いなく誤って例えば重複していることもあります。がんばろう :) –

関連する問題