在UIKit和其他系统库没有被符号化之前,有没有人见过这样的崩溃日志?我们的一个应用程序遇到崩溃问题 启动但只有少数用户(如5)遇到问题。 (根据我的理解,显示default.png然后崩溃)我们无法重现它。在代码中似乎没有任何遗忘,我运行静态分析器,它没有显示任何问题。但事实是 UIKit和其他图书馆没有象征意义对我来说很奇怪。我查了libSystem.B.dylib 0000000000 0 + 0并且谷歌有关于此的一些点击以及与静态库的连接。这个项目确实使用了静态库,但我认为如果它们存在问题,它就不适用于任何设备而不仅仅是一对。
Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x00000000
Crashed Thread: 0
Thread 0 Crashed:
0 libSystem.B.dylib 0000000000 0 + 0
1 UIKit 0x0068a0dc 0x66c000 + 123100
2 MyApp 0x000307b2 -[RootViewController defaultImage] (RootViewController.m:39)
3 MyApp 0x00030720 -[RootViewController loadView] (RootViewController.m:49)
4 MyApp 0x00030182 -[RootViewController loadView] (RootViewController.m:43)
5 MyApp 0x00031894 -[AppDelegate applicationDidFinishLaunching:] (AppDelegate.m:52)
6 UIKit 0x31ada4b8 0x31acc000 + 58552
7 UIKit 0x31ad09e2 0x31acc000 + 18914
8 UIKit 0x31b29fd8 0x31acc000 + 384984
9 UIKit 0x31b298fc 0x31acc000 + 383228
10 UIKit 0x31b29332 0x31acc000 + 381746
11 GraphicsServices 0x3026c046 0x30267000 + 20550
这是完整的defaultImage方法
-(UIImage*)defaultImage
{
return [UIImage imageNamed: @"Default.png"];
}
我们从其中一个用户那里获得了ipa,而Default.png似乎没有被破坏。
答案 0 :(得分:2)
Xcode不再包含每个硬件上每个iOS版本的所有内容。相反,它会从设备中提取信息。
找出这些用户使用的操作系统和设备(可能是相同的)并将其插入Mac。 Xcode会扼杀它所需要的东西。
答案 1 :(得分:0)
我可以确认,有时候我的应用程序的崩溃日志也发生了这种情况。到目前为止,我还没有能够进一步表达它们。似乎没有理由为什么它们中的一些完全符号而另一些则没有。
您是否为提交到App Store的版本进行了存档和构建?无论出于何种原因,XCode似乎在从存档的应用程序构建中表示日志方面要好得多,所以我确保始终这样做。
现在关于崩溃本身,您是否可能从后台线程显示启动画面?它不会导致所有设备崩溃,但它会对某些设备造成崩溃(同样似乎没有理由它崩溃某些设备而不是其他设备崩溃)。我在我的应用程序上受此影响,因为它没有使模拟器或我的任何设备崩溃,但它确实使我的用户设备的一小部分崩溃。我正在使用后台线程进行初始化,之后我才读到你只能从主线程中使用UIKit。我改变了它,不再有问题。