Today, we noticed a spike in crashes through iTunes Connect that were (almost) exclusively affecting iOS 11.1 users. It started 4 days ago, the same day that beta 2 was released. These crashes were not visible in HockeyApp.
Xcode has a 4-pane window for crashes:
- The app
- The crash group
- The stack trace
- Some basic statistics & details.
This particular crash had the bottom 4 lines of the backtrace visible, and they were just the regular run loop. Nothing to go on, and I thought it was really weird that it doesn’t show the first 5 frames.
5 GraphicsServices 0x0000000188309f84 GSEventRunModal + 100 (GSEvent.c:2245) 6 UIKit 0x000000018fa46598 UIApplicationMain + 208 (UIApplication.m:3949) 7 Stripe 0x0000000100674450 main + 120 (AppDelegate.swift:15) 8 libdyld.dylib 0x0000000185f9656c start + 4
On probably my 6th time looking through this window, I finally noticed the controls at the bottom of the 3rd pane. The first one toggles the full backtrace and all of the threads. One hypothesis was that these crashes were occurring before HockeyApp was able to hook into the exception handling, but that didn’t appear to be the case, because there were a bunch of threads running and one of them was running an
NSURLConnection(Loader) run loop.
The next epiphany was that you can right-click a crash group in the 2nd pane to
Show in Finder. That leads to a directory full of
xccrashpoint packages. Digging into the appropriate package finally reveals the symbolicated crash logs:
Termination Description from the crash logs was the final clue I needed.
Exception Type: EXC_CRASH (SIGKILL) Exception Codes: 0x0000000000000000, 0x0000000000000000 Exception Note: EXC_CORPSE_NOTIFY Termination Reason: Namespace SPRINGBOARD, Code 0xdeadfa11 Termination Description: SPRINGBOARD, killed from app switcher | | ProcessVisibility: Background | ProcessState: Suspended
I was able to reproduce by killing the app running on 11.1b2, and then digging through the 1000+ entries in
Settings -> Privacy -> Analytics -> Analytics Data until I found the corresponding crash log.
In conclusion: 11.1 beta 2 (15B5078e) is sending crashes through iTunes Connect when users kill the app from the app switcher. Also, Xcode was not very intuitive or helpful while tracking down this issue.
PS: According to
*.xccrashpoint/DistributionInfos/all/info.json, iTunes Connect is also grouping one 10.3 and one 11.0 crash into this group. Unfortunately, there’s no corresponding crash log in the package, so I don’t know what’s going on there.