应用程序在 Xcode 中启动(和工作)正常,但在 TestFlight 和 Ad-Ho 中崩溃

App launching (and working) fine in Xcode but crashes in TestFlight and Ad-Ho

这是一个我以前从未遇到过的奇怪问题。我的应用程序相当大(~250MB),媒体内容很重——图像很重。当从 Xcode 到模拟器或 iOS 设备(在 Xcode 6 和 Xcode 7 Beta 上)测试和启动我的应用程序时,该应用程序运行良好。加载需要一些时间,但一旦完成,一切正常。我的应用程序中图像最多的部分(包含大约 50 个缩略图)也可以正常加载。

但是,在存档应用程序并将其上传到 TestFlight 或提取为 Ad-Hoc IPA 时,会发生同样的事情:在应用程序首次启动时,它会加载启动屏幕片刻,然后崩溃。第二次加载时,该应用程序将加载得很好,但是我的应用程序的那个沉重的部分(带有 50 个缩略图)会丢失一些图像。

起初,我不知道该怎么办。然而,在第二个和第三个版本中,我注意到,根据崩溃时间的长短,会显示更多的缩略图。例如:如果它在崩溃前加载启动屏幕 30 秒,它会显示 50 个缩略图中的 22 个。如果它在崩溃前加载了 45 秒,它会显示 26 个缩略图。

根据您的崩溃日志中的异常代码,您“8 坏食物”。您的应用初始化时间过长,因此被 iOS 终止。您需要将应用启动处理移至后台线程。

The exception code 0x8badf00d indicates that an application has been terminated by iOS because a watchdog timeout occurred. The application took too long to launch, terminate, or respond to system events. One common cause of this is doing synchronous networking on the main thread. Whatever operation is on Thread 0: needs to be moved to a background thread, or processed differently, so that it does not block the main thread.

来自:TN2151