<!-- llms-explorer concept facts · https://llms-explorer.com/tree/crash-and-log-collection-for-store-apps-organizer-metrickit-oslog-and-log-collect-versus-zero-telemetry/ · pack 2026-10-02 · ~1185 tokens -->

# Crash and log collection for store apps Organizer MetricKit OSLog and log collect versus zero telemetry

> Source-anchored research for Crash and log collection for store apps Organizer MetricKit OSLog and log collect versus zero telemetry. Run status: COMPLETED.

Parent: [macOS App Testing and Release QA](https://llms-explorer.com/tree/macos-app-testing-and-release-qa/) · 4 facets · 10 facts · page: https://llms-explorer.com/tree/crash-and-log-collection-for-store-apps-organizer-metrickit-oslog-and-log-collect-versus-zero-telemetry/

## Structure and components

- MetricKit crash data has practical limits: unsymbolicated call-stack JSON (MXCallStackTree exposes only JSONRepresentation), so you must keep dSYMs and symbolicate yourself; uncaught NSException detail is missing; and a Sentry integration notes MetricKit stack traces often contain only a few frames. (medium confidence) — [source](https://www.chimehq.com/blog/metrickit-crash-reporting)
- For a Mac tester, `log collect --output <path>.logarchive --last 5m` (or --start) makes a bounded logarchive of the unified log; sysdiagnose (Cmd-Opt-Ctrl-Shift-period, Activity Monitor, or `sudo sysdiagnose`) is broader but, per Apple, contains personal information. Log entries decay quickly (about 20% lost within five minutes in one measurement), so collect soon after reproducing. (medium confidence) (verified as of 2026-06-27) — [source](https://eclecticlight.co/2026/06/27/explainer-sysdiagnose-and-logarchives/)

## How it works

- MetricKit payloads are delivered only to the app process; to see them the developer must have the app forward them somewhere. Doing that off-device is data collection, so a zero-telemetry app can at most log them locally or let the user export them manually. (medium confidence) — [source](https://developer.apple.com/app-store/app-privacy-details/)

## Problems, failure modes and limitations

- In an App Sandbox app, OSLogStore works only with the .currentProcessIdentifier scope; the .system scope and local() store fail. A sandboxed app cannot read other apps' or system logs, its own helper-process logs, or logs from earlier launches (PID changes). (medium confidence) — [source](https://mjtsai.com/blog/2021/12/10/oslogstore-on-monterey/)
- Antipattern: building an in-app 'send diagnostics' that uploads logs or MetricKit payloads automatically; it breaks a no-collection privacy label and, in a sandbox, would capture only the current process anyway. Prefer a user-initiated export (save a file the user chooses) or direct testers to `log collect` and TestFlight feedback. (low confidence) — [source](https://developer.apple.com/app-store/app-privacy-details/)

## Facts and statements

- Xcode Organizer's Crashes view covers both App Store and TestFlight builds across platforms including macOS, with feedback from TestFlight testers attached to crashes and an 'Open in Xcode' path from App Store Connect. (high confidence) — [source](https://developer.apple.com/videos/play/wwdc2021/10203/)
- Organizer reports need user consent: TestFlight users automatically agree to share data, but App Store users must agree to share crash and usage data with developers. Reports take several days to appear after release, and local (Xcode-run) builds produce none. Coverage of App Store crashes is therefore a subset of real crashes. (high confidence) — [source](https://help.apple.com/xcode/mac/current/en.lproj/dev9a80ab71d.html)
- MetricKit supports macOS 12 and later (MXCrashDiagnostic, hang, CPU and disk-write diagnostics), delivering diagnostics to the app via MXMetricManagerSubscriber; diagnostic payloads arrive immediately on iOS 15+/macOS 12+, whereas metric payloads arrive about once per day. (medium confidence) (verified as of 2026-10-02) — [source](https://docs.sentry.io/platforms/apple/guides/macos/configuration/metric-kit/)
- Logarchives from macOS 27 need macOS 26.2 or later to open, so QA machines and the developer's Mac must run recent enough releases to read archives collected from a macOS 27.x tester. (low confidence) (verified as of 2026-06-27) — [source](https://eclecticlight.co/2026/06/27/explainer-sysdiagnose-and-logarchives/)
- Apple's App Privacy Details say data processed only on device and never sent to a server is not 'collected' and need not be disclosed, and that developers are not responsible for disclosing data collected by Apple. Crash logs, performance data and other diagnostics sent to the developer must be disclosed. A zero-telemetry design that relies on Organizer plus manual `log collect` therefore avoids a Diagnostics disclosure for the app's own code. (medium confidence) (verified as of 2026-10-02) — [source](https://developer.apple.com/app-store/app-privacy-details/)
