2016-10-13 5 views
1

iOS10の時点で、私のアプリはランダムに、特に画面がロックされたままでクラッシュすることに苦情を抱いています。彼らは画面のロックを解除すると、彼らは秒間アプリを見ることができるし、クラッシュします。ログでは、私はこれらのような多くのエントリを参照することができますiOS10のアプリケーションでクラッシュする例外「パスに有効なコンパイル済みのストーリーボードがないようです」

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'There doesn't seem to be a valid compiled storyboard at path '/var/containers/Bundle/Application/serialcode/XXX.app/AppLaunchStoryboard.storyboardc'' *** First throw call stack: (0x1d465e07 0x1c6cb077 0x22c14083 0xe7d55 0x115ae7 0xbe37d 0x2252897f 0x22726e9d 0x1ed151e1 0x1dd46419 0x1dcc5743 0x1ec98f3f 0x1ed0f3d1 0x1ed1503d 0x227276fd 0x227273c1 0x22a2fa07 0x1ecfef2d 0x1ed2a9cb 0x1ed2a885 0x1ed2ab6f 0x1d421c8b 0x1d421795 0x1d41fa6b 0x1d36f073 0x1d36ee81 0x1eb17bfd 0x2250fccf 0x2250a401 0xbf879 0x1cb3a50b) libc++abi.dylib: terminating with uncaught exception of type NSException

「無効」ファイルを、私はまた、他のストーリーボードファイルや.xibファイルへの参照を見てきましたallthough通常AppLaunchStoryboard.storyboardです。

上記のエラーは、私が二重チェックしたiOSアーキテクチャに関するXCodeの誤ったビルド設定を指しています。私のアプリが適切なアーキテクチャー用に構築されていない場合、確かにアプリは最初の場所でも実行できませんでしたか?

この問題は確実に再現可能ではなく、いつでも発生する可能性があります。

ご提案は大変ありがとうございます。

+0

は、このソリューションを試してみてください。私のストーリーボードのhttp://stackoverflow.com/a/26239971/1689376 – alexburtnik

+0

いずれもローカライズがオンになっていないと私います拡張機能を持たない。ローカリゼーションを有効にしようとします... – potlood

+0

ローカリゼーションは機能しませんでしたが、問題は依然として続きます。 – potlood

答えて

0

この問題は、NSFetchedResultsControllerのキャッシュを無効にすることで解決しました。私はベータ版で、デバッグ環境でのクラッシュを再現するか、ビルドをリリースすることができなかった

  • :私は症状が関連していたわからなかったので

    いくつかの症状の前に言及されていません。

  • エラーメッセージ:

    [error] error: (NSFetchedResultsController): couldn't read cache file to update store info timestamps

    は頻繁にデバッグ出力には決して生産ログに記録されました。

  • 上記のエラーメッセージにもっと注意を払うと、私のアプリケーションが大量のファイルディスクリプタを作成していて、キャッシュフォルダ内のファイルを開いて閉じたり解放したりしないことがわかりました。

    NSFetchedResultsController *fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:context sectionNameKeyPath:nil cacheName:@"someName"];

    私はに変更:問題を解決し

    NSFetchedResultsController *fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:context sectionNameKeyPath:nil cacheName:nil];

私のアプリを使用して作成かなりの数のNSFetchedResultsControllersを持っています。

も正しい方向に私を指すように助けた次のポストは: too-many-open-files-after-calling-fabric-framework-run

関連する問題