I'm developing an iPhone app which is now on the app store, and am using TestFlight to ready the next version for production. However, I've had several iPhone 4s users report that the app crashes right when the splash screen appears.
The crash has only happened on TestFlight versions of the app, on iPhone 4s's running iOS8. It occurs every time the app is opened, with the splash screen visible before the main view appears.
It loads perfectly fine on the simulator across all devices, with no crash. It also launches fine on all iPhones 5 and up.
I've built this version of the app with Xcode 7.0.1.
I've run into a similar problem in the past where a TestFlighted version of the app crashed on loading after I had deleted or renamed image assets, even though they were no longer in use in any code. However, this issue was reproducible across all iPhone devices, which is not the case here. Thus I don't think this is the problem.
My only guess is that it might be something with 32-bit vs 64 bit architecture that Xcode 7 screws up when building (iPhone 4s runs 32-bit, and iPhone 5s and up all run 64-bit). I'll rebuild with Xcode 6 and submit to TestFlight again, and report back whether this solves the problem.
I've obtained a crash log from one of my beta testers, and included it below -- however, I need assistance understanding this, as I'm not able to make sense of it. I tried to drag and drop the crash log into Device Logs as suggested here: How to symbolicate crash log Xcode?, but it didn't seem to symbolicate correctly, as you can see below:
Beta: YES
Code Type: ARM (Native)
Parent Process: launchd [1]
Date/Time: 2015-10-03 20:23:13.499 -0700
Launch Time: 2015-10-03 20:23:12.279 -0700
OS Version: iOS 8.4.1 (12H321)
Report Version: 104
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Triggered by Thread: 0
Last Exception Backtrace:
(0x288760d2 0x36d08c72 0x2739c81c 0x1bc6e8 0x1d2e8e 0x15a412 0xfbcaa 0xff894 0x2bed7558 0x2bf822f0 0x2bf82218 0x2bf8178c 0x2bf814c2 0x2bf81230 0x2bf811c4 0x2bed49c6 0x2b8ea3e0 0x2b8e5c30 0x2b8e5ab8 0x2b8e545a 0x2b8e524a 0x2c13afd0 0x2c13bd58 0x2c1465e4 0x2c13a0c2 0x2f34aebc 0x2883c030 0x2883b2f4 0x28839e4e 0x287856cc 0x287854de 0x2bf3c862 0x2bf37440 0x182b6e 0x372d6aaa)
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x3739cdf0 0x37388000 + 85488
1 libsystem_pthread.dylib 0x3741dc86 0x3741a000 + 15494
2 libsystem_c.dylib 0x3733b8bc 0x372f2000 + 301244
3 libc++abi.dylib 0x36515bb8 0x36515000 + 3000
4 libc++abi.dylib 0x3652f66a 0x36515000 + 108138
5 libobjc.A.dylib 0x36d08f0e 0x36d02000 + 28430
6 libc++abi.dylib 0x3652cdec 0x36515000 + 97772
7 libc++abi.dylib 0x3652c8b4 0x36515000 + 96436
8 libobjc.A.dylib 0x36d08dba 0x36d02000 + 28090
9 CoreFoundation 0x28785768 0x2876b000 + 108392
10 CoreFoundation 0x287854de 0x2876b000 + 107742
11 UIKit 0x2bf3c862 0x2bec8000 + 477282
12 UIKit 0x2bf37440 0x2bec8000 + 455744
13 Dap'd 0x00182b6e 0xef000 + 605038
14 libdyld.dylib 0x372d6aac 0x372d5000 + 6828
Thread 1 name: Dispatch queue: com.apple.libdispatch-manager
Thread 1:
0 libsystem_kernel.dylib 0x3738924c 0x37388000 + 4684
1 libdispatch.dylib 0x372a94ec 0x37297000 + 74988
2 libdispatch.dylib 0x372a921e 0x37297000 + 74270
Thread 2 name: Dispatch queue: FBSSerialQueue
Thread 2:
0 libsystem_kernel.dylib 0x373894ec 0x37388000 + 5356
1 libdispatch.dylib 0x372a6b8e 0x37297000 + 64398
2 FrontBoardServices 0x2f34ae9e 0x2f335000 + 89758
3 libdispatch.dylib 0x37298c80 0x37297000 + 7296
4 libdispatch.dylib 0x372a34ce 0x37297000 + 50382
5 libdispatch.dylib 0x372a2d9c 0x37297000 + 48540
6 libdispatch.dylib 0x372a548e 0x37297000 + 58510
7 libdispatch.dylib 0x372a689e 0x37297000 + 63646
8 libsystem_pthread.dylib 0x3741ad9a 0x3741a000 + 3482
9 libsystem_pthread.dylib 0x3741aaec 0x3741a000 + 2796
Thread 3:
0 libsystem_kernel.dylib 0x3739d9c0 0x37388000 + 88512
1 libsystem_pthread.dylib 0x3741ae14 0x3741a000 + 3604
2 libsystem_pthread.dylib 0x3741aaec 0x3741a000 + 2796
Thread 4:
0 libsystem_kernel.dylib 0x3739d9c0 0x37388000 + 88512
1 libsystem_pthread.dylib 0x3741ae14 0x3741a000 + 3604
2 libsystem_pthread.dylib 0x3741aaec 0x3741a000 + 2796
Thread 5:
0 libsystem_kernel.dylib 0x3739d9c0 0x37388000 + 88512
1 libsystem_pthread.dylib 0x3741ae14 0x3741a000 + 3604
2 libsystem_pthread.dylib 0x3741aaec 0x3741a000 + 2796
Thread 6:
0 libsystem_kernel.dylib 0x3739d9c0 0x37388000 + 88512
1 libsystem_pthread.dylib 0x3741ae14 0x3741a000 + 3604
2 libsystem_pthread.dylib 0x3741aaec 0x3741a000 + 2796
Thread 7:
0 libsystem_kernel.dylib 0x3739d9c0 0x37388000 + 88512
1 libsystem_pthread.dylib 0x3741ae14 0x3741a000 + 3604
2 libsystem_pthread.dylib 0x3741aaec 0x3741a000 + 2796
Thread 8:
0 libsystem_kernel.dylib 0x3739d9c0 0x37388000 + 88512
1 libsystem_pthread.dylib 0x3741ae14 0x3741a000 + 3604
2 libsystem_pthread.dylib 0x3741aaec 0x3741a000 + 2796
Thread 9 name: AVAudioSession Notify Thread
Thread 9:
0 libsystem_kernel.dylib 0x3738949c 0x37388000 + 5276
1 libsystem_kernel.dylib 0x37389290 0x37388000 + 4752
2 CoreFoundation 0x2883b5ce 0x2876b000 + 853454
3 CoreFoundation 0x28839b94 0x2876b000 + 846740
4 CoreFoundation 0x287856cc 0x2876b000 + 108236
5 CoreFoundation 0x287854de 0x2876b000 + 107742
6 libAVFAudio.dylib 0x27484ef8 0x2746b000 + 106232
7 libAVFAudio.dylib 0x274773f4 0x2746b000 + 50164
8 libsystem_pthread.dylib 0x3741cddc 0x3741a000 + 11740
9 libsystem_pthread.dylib 0x3741cd4e 0x3741a000 + 11598
10 libsystem_pthread.dylib 0x3741aaf8 0x3741a000 + 2808
Thread 0 crashed with ARM Thread State (32-bit):
r0: 0x00000000 r1: 0x00000000 r2: 0x00000000 r3: 0x00000003
r4: 0x00000006 r5: 0x39cdd9dc r6: 0x39cc9840 r7: 0x0039a438
r8: 0x145d6610 r9: 0x7420666f r10: 0x39cc8074 r11: 0x145d6634
ip: 0x00000148 sp: 0x0039a42c lr: 0x3741dc8b pc: 0x3739cdf0
cpsr: 0x00000010
It turns out I made a noob mistake, and that the crash was indeed specific to iPhone 4s:
My app requires iOS 8 or higher, and I was initializing a camera capture session preset value that was compatible with all cameras of all iPhones supporting iOS8, except for the iPhone 4s' front-facing camera.
This also explains why the crash wasn't reproducible in Simulator, as camera capture is not supported there.
User contributions licensed under CC BY-SA 3.0