getsentry / getsentry/sentry

Support ingesting Apple JSON .ips crash report format

Open
#117,975 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Cocoa Feature
Dominant language
Python
Stars
44.8k
Forks
4.9k
Avg merge
21h 23m
Merged PRs (30d)
607

Description

Support ingesting Apple's JSON .ips crash report format as an alternative input to the Sentry Apple SDK. This would allow teams to bring externally-collected crash reports into Sentry without requiring SDK instrumentation at crash time.

Current behavior

The Sentry Apple SDK captures crashes at runtime and encodes them in Sentry's own envelope format. There is no way to ingest pre-existing .ips crash reports generated by the OS.

Gap

Apple has documented a stable JSON crash report format (.ips) since macOS 12 / iOS 15 (Apple developer docs). Crash reports in this format are produced by:

  • macOS / iOS crash reporter (written to disk at crash time)
  • Xcode Organizer
  • TestFlight
  • App Store Connect

Teams that collect these reports outside of the Sentry SDK pipeline have no way to ingest them into Sentry today. This creates a gap for scenarios such as:

  • Crashes that occur before the SDK initializes
  • Reports collected from devices that don't run Sentry-instrumented builds
  • Post-hoc analysis of OS-generated crash logs

Options

  • A sentry-cli command or API endpoint that accepts .ips files, parses them, and submits corresponding Sentry events, related issue: https://github.com/getsentry/sentry-cli/issues/2663
  • Backend-only ingestion endpoint that accepts raw .ips JSON payloads directly

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by comparing the two proposed entry points: a sentry-cli command or API endpoint accepting raw Apple .ips JSON. Determine which ingestion path is intended, then define parsing and event-submission behavior; the work is done when externally collected reports can be ingested into Sentry without SDK instrumentation.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api, backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.