Hello,
I am trying to submit my app to TestFlight. But the build didn't pass the tests. ITunes Connect rejected my build. The reason is "Binary Rejected: Guideline 2.1 - Performance - App Completeness We were unable to review your app as it crashed on launch. We have attached detailed crash"
The app works well on my device as an internal tester (via TestFlight).
I precise that I used Xamarin.iOS to develop the app.
I have some difficulties to find the source of the problem, can you help me? Here is the crash log:
Thanks in advance for your help!
Jérôme
The 0x8badf00d (“ate bad food”) exception code means that your app was killed by the watchdog for being insufficiently responsive. You can learn more about this in Technote 2151 Understanding and Analyzing iOS Application Crash Reports.
To debug this you should look at two items in the crash log:
The backtrace of the main thread
The Termination Description field
The backtrace of the main thread indicates that your app was blocked accessing the keychain when it was killed. It’s possible that this blocking is the cause of your problem, but I don’t think that’s the case here.
And that’s because of the Termination Description field, which looks like this (I’ve broken it up into multiple lines to make it easier to read):
Termination Description:
SPRINGBOARD,
scene-create watchdog transgression: com.XandJsoft.MyFamily
exhausted real (wall clock) time allowance of 19.69 seconds |
| ProcessVisibility: Foreground
| ProcessState: Running
| WatchdogEvent: scene-create
| WatchdogVisibility: Foreground
| WatchdogCPUStatistics: (
| "Elapsed total CPU time (seconds): 16.920 (user 16.920, system 0.000), 28% CPU",
| "Elapsed application CPU time (seconds): 0.437, 1% CPU"
| )
Line 4 indicates that your app was given (roughly) 20 seconds to launch. Now look at line 10, which indicates that your app spend roughly 17 seconds of that doing computation on the CPU. That’s a big chunk of time, and I’d argue it’s way too long for a couple of reasons:
It skirts very close to the watchdog limit of 20 seconds
You’re making the user wait way too long
My recommendation here is that you look at ways to optimise your launch time.
Share and Enjoy
—
Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware
let myEmail = "eskimo" + "1" + "@apple.com"