Rejected: Crash on Launch - Works On All My Devices and Simulator

Had my app rejected because it crashed on these devices (essentially all) "- iPhone 4S running iOS 8.3- iPhone 5C running iOS 8.3- iPhone 5S running iOS 8.3- iPhone 6 running iOS 8.3- iPhone 6 Plus running iOS 8.3- iPod Touch Fifth Generation running iOS 8.3".


This is puzzling because I literally spent 4 hours creating all kinds of explicit App IDs and Provisioning Distribution Profiles for my app, embedded framework, and an action extension (because Automatic provisioning NEVER worked) to finally get the app to archived, validated, and successfully submitted. After I received the notice I reinstalled the app on my 5S with 8.3 and several of the simulators for the above devices, and they all work perfectly.


The attached crash log was not helpful (to me at least - more of it follows below):

Exception Type: EXC_CRASH (SIGABRT)

Exception Codes: 0x0000000000000000, 0x0000000000000000


I tried to follow the directions for creating an Ad Hoc ipa to be installed with iTunes (and not Xcode). The instructions are dated, do not correspond to Xcode 6.3 commands or options, but I tried and did manage to generate an ipa from the archive. I installed the ipa, closed Xcode, ran the app from my 5S, and it worked perfectly on launch and even with the action extension in Photos. So, no symbolicated crash reports to analyze.


So, where do I go from here? Thanks for any pointers.


Date/Time:           2015-06-19 16:55:18.042 -0700
Launch Time:         2015-06-19 16:55:17.506 -0700
OS Version:          iOS 8.3 (12F70)
UDID:                58d8557eda8ba97e15bfefa0fc9db5428337e822
Report Version:      105

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Triggered by Thread:  0


Filtered syslog:
None found

Last Exception Backtrace:
(0x181e802d8 0x1937340e4 0x181d63b34 0x100011ab4 0x186824ccc 0x193d85994 0x193d85954 0x193d8a20c 0x181e377f8 0x181e358a0 0x181d612d4 0x18b65f6fc 0x186926fac 0x100012f5c 0x193db2a08)


Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   libsystem_kernel.dylib         0x0000000193ecb270 0x193eb0000 + 111216
1   libsystem_pthread.dylib       0x0000000193f6916c 0x193f64000 + 20844
2   libsystem_c.dylib             0x0000000193e42b14 0x193de0000 + 404244
3   libc++abi.dylib               0x0000000192f15414 0x192f14000 + 5140
4   libc++abi.dylib               0x0000000192f34b88 0x192f14000 + 134024
5   libobjc.A.dylib               0x00000001937343bc 0x19372c000 + 33724
6   libc++abi.dylib               0x0000000192f31bb0 0x192f14000 + 121776
7   libc++abi.dylib               0x0000000192f31474 0x192f14000 + 119924
8   libobjc.A.dylib               0x0000000193734200 0x19372c000 + 33280
9   CoreFoundation                 0x0000000181d63b30 0x181d58000 + 47920
10  MYAPP                         0x0000000100011ab0 0x100008000 + 39600
11  StoreKit                       0x0000000186824cc8 0x18681c000 + 36040
12  libdispatch.dylib             0x0000000193d85990 0x193d84000 + 6544
13  libdispatch.dylib             0x0000000193d85950 0x193d84000 + 6480
14  libdispatch.dylib             0x0000000193d8a208 0x193d84000 + 25096
15  CoreFoundation                 0x0000000181e377f4 0x181d58000 + 915444
16  CoreFoundation                 0x0000000181e3589c 0x181d58000 + 907420
17  CoreFoundation                 0x0000000181d612d0 0x181d58000 + 37584
18  GraphicsServices               0x000000018b65f6f8 0x18b654000 + 46840
19  UIKit                         0x0000000186926fa8 0x1868b0000 + 487336
20  MYAPP                         0x0000000100012f58 0x100008000 + 44888
21  libdyld.dylib                 0x0000000193db2a04 0x193db0000 + 10756
Answered by junkpile in 14052022

If you symbolicate that crash log it may provide more useful info. The line


10  MYAPP                         0x0000000100011ab0 0x100008000 + 39600


should point to a line in your code to start looking. The fact that the previous stack frame was StoreKit is interesting. Perhaps your IAP product identifiers are coming back invalid or something, and your code doesn't handle it. Again, if you symbolicate that log you can tell what that callback was.

Accepted Answer

If you symbolicate that crash log it may provide more useful info. The line


10  MYAPP                         0x0000000100011ab0 0x100008000 + 39600


should point to a line in your code to start looking. The fact that the previous stack frame was StoreKit is interesting. Perhaps your IAP product identifiers are coming back invalid or something, and your code doesn't handle it. Again, if you symbolicate that log you can tell what that callback was.

Thanks. I finally figured out how to symbolicate the crash log by using Google since the links provided by the Review Team was from 2012 (https://developer.apple.com/library/ios/#technotes/tn2008/tn2151.html) and was not updated to Xcode 6 (or probably 5), did not mention I had to rename the crash log attached from the Review Team, that I had to connect my device, go to Organizer, view Device Logs, drag & drop, etc. (Filed a radar #21483079).


Anyway, yes, the problem occurred with a custom object that handles the Store. I had this exact same error during development when for some reason iTunes Connect did not recognize my one upgrade product and so there were zero objects in the response from the store and trying to do anything with the response array crashed. I had to delete the test Sandbox user I was using and create a new one (for some reason) and eventually the store returned the one product and everything worked.


I would *assume* that the Review Team would have to sign in with a test Sandbox user on their devices on startup but I have no idea (and probably I'm wrong). I'm going to create a new discussion for this.


Last Exception Backtrace:
0   CoreFoundation                 0x181e802d8 __exceptionPreprocess + 132
1   libobjc.A.dylib               0x1937340e4 objc_exception_throw + 60
2   CoreFoundation                 0x181d63b34 -[__NSArrayI objectAtIndex:] + 224
3   MYAPP                         0x100011ab4 -[StoreObserver productsRequest:didReceiveResponse:] (StoreObserver.m:203)
4   StoreKit                       0x186824ccc __34-[SKProductsRequest _handleReply:]_block_invoke + 544

I am also facing the problem.. Not able to symbolicate the carsh log provided by the apple. You mentioned you had to rename it. What should I remate it to?


Thanks and Regards,

Gunjan

Rejected: Crash on Launch - Works On All My Devices and Simulator
 
 
Q