Diagnosing crashes reported in App Store Connect analytics

My app's crash numbers in App Store Connect's analytics are higher than I'd like, but I'm having trouble figuring out where they're coming from. In Xcode's Organizer, I see very low numbers of foreground crashes, and 95% of my background terminations are "System Pressure." So I have some questions about what's included in App Store Connect's numbers and correlating them with other signals:

  • Do they include background terminations, or only foreground terminations?
  • If they do include background terminations, do they include "File Lock" terminations (which I think largely means 0xdead10cc)?
  • If they do include background terminations, do they include System Pressure terminations?
  • Are all the crashes included in App Store Connect's numbers also delivered to MetricKit as crash diagnostics?
  • Is there documentation on what "System Pressure" terminations are? My understanding is that it's when the system kills my app to free up resources.

I would check out this video that is very useful in this space. https://developer.apple.com/videos/play/wwdc2021/10181

Hi Mr. Jefferson,

  • For Crash analytics data available in App Store Connect:

    • Yes, Background Terminations are included
    • Yes, File Lock Terminations are included
    • No, System Pressure Terminations are not included
  • If your app links MetricKit and subscribes to receive diagnostic reports, crashes that are included in the App Store Connect numbers may also be delivered to MetricKit as crash diagnostics. Since these diagnostics are only shared with you through MetricKit and not stored on Apple servers, you may receive a superset of the data in App Store Connect.

  • For Background System Pressure Terminations, this is not an app launch failure. This typically occurs when your app has been terminated while idle in the background. For instance, when the system is under memory pressure and a foreground app needs more memory, the system will try to reclaim memory by terminating backgrounded apps. One way to reduce the likelihood of your app being terminated in the background is by reducing your app's memory footprint.

Diagnosing crashes reported in App Store Connect analytics
 
 
Q