Iphone Crash日志不代表UIKit调用

时间:2010-10-25 19:04:10

标签: iphone objective-c crash-reports

在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似乎没有被破坏。

2 个答案:

答案 0 :(得分:2)

Xcode不再包含每个硬件上每个iOS版本的所有内容。相反,它会从设备中提取信息。

找出这些用户使用的操作系统和设备(可能是相同的)并将其插入Mac。 Xcode会扼杀它所需要的东西。

答案 1 :(得分:0)

我可以确认,有时候我的应用程序的崩溃日志也发生了这种情况。到目前为止,我还没有能够进一步表达它们。似乎没有理由为什么它们中的一些完全符号而另一些则没有。

您是否为提交到App Store的版本进行了存档和构建?无论出于何种原因,XCode似乎在从存档的应用程序构建中表示日志方面要好得多,所以我确保始终这样做。


现在关于崩溃本身,您是否可能从后台线程显示启动画面?它不会导致所有设备崩溃,但它会对某些设备造成崩溃(同样似乎没有理由它崩溃某些设备而不是其他设备崩溃)。我在我的应用程序上受此影响,因为它没有使模拟器或我的任何设备崩溃,但它确实使我的用户设备的一小部分崩溃。我正在使用后台线程进行初始化,之后我才读到你只能从主线程中使用UIKit。我改变了它,不再有问题。