Has anyone ever seen a crash log like this before where the UIKit and other system libraries do not get symbolicated? One of our apps is having an issue with crashing on launch but only a small number of users (like 5) are experiencing the problem. (To my understanding the default.png is displayed and then it crashes) and we have been unable to reproduce it. There doesn't seem to be anything oblivious in the code and I have ran the static analyzer and it shows no issues. But the fact that the UIKit and other libraries are not being symbolicated is odd to me. I looked up libSystem.B.dylib 0000000000 0 + 0 and there are some hits on google about this and a connection with static libraries. This project does use static libraries but I would assume that if there was an issue with them it would not work on any device not just a couple.
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 + 123开发者_StackOverflow社区100
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
This is the defaultImage method in its entirety
-(UIImage*)defaultImage
{
return [UIImage imageNamed: @"Default.png"];
}
We got the ipa from one of the users and the Default.png does not seem to be corrupted.
Xcode doesn't include everything for every version of iOS on every piece of hardware anymore. Instead, it'll pulls information off the device.
Figure out what OS and device these users are using (it's probably the same) and plug one into your Mac. Xcode will slurp what it needs from it.
I can confirm that on occasion I have also had this happen with the crash logs for my app. So far I have not been able to symbolicate them further. There doesn't seem to be a reason why some of them symbolicate completely and others don't.
Did you do an Archive and Build for the version that you submitted to the App Store? For whatever reason, XCode seems to be a lot better at symbolicating logs from archived app builds, so I make sure to always do that.
Now regarding the crash itself, is it possible that you are displaying the splash screen from a background thread? It won't cause a crash on all devices, but it does on some (again there seems to be no reason why it crashes certain devices and not others that I have found). I was affected by this on my app because it didn't crash the simulator or any of my devices, but it did crash a small percentage of my users' devices. I was doing my initialization using a background thread, and I only read later that you can only use UIKit from the main thread. I changed it and no longer had a problem.
精彩评论