A service for analyzing iOS and Android apps.
git clone https://github.com/getsentry/launchpad.git
cd launchpad
# Installs our local dependencies
devenv syncIf you don't have devenv installed, follow these instructions.
devservices manages the dependencies used by Launchpad:
# Start dependency containers (e.g. Kafka)
devservices up
# Begin listening for messages
launchpad serve
# Stop containers
devservices downLaunchpad is primarily designed to run as a Kafka consumer alongside the Sentry monolith codebase via launchpad serve.
Alternatively for a one-off analysis, such as a local size analysis, you can invoke our various CLI subcommands.
# iOS analysis
launchpad size path/to/app.xcarchive.zip
# Android analysis (AAB preferred)
launchpad size path/to/app.aab
launchpad size path/to/zipped_aab.zip
launchpad size path/to/app.apk
# Skip time-consuming analysis for faster results
launchpad size path/to/app.xcarchive.zip --skip-swift-metadata --skip-symbols
# Custom output location
launchpad size path/to/app.xcarchive.zip -o my-report.json
launchpad size app.apk -o detailed-report.jsonSee launchpad size --help for all options:
$ launchpad size --help
Usage: launchpad size [OPTIONS] INPUT_PATH
  Analyze provided artifact and generate a size report.
Options:
  -o, --output FILENAME      Output path for the analysis.  [default: -]
  -v, --verbose              Enable verbose logging output.
  -q, --quiet                Suppress all output except errors.
  --format [json|table]      Output format for results.  [default: json]
  --working-dir PATH         Working directory for temporary files (default:
                             system temp).
  --skip-swift-metadata      Skip Swift metadata parsing for faster analysis.
  --skip-symbols             Skip symbol extraction and analysis.
  --skip-component-analysis  Skip detailed binary component analysis for
                             faster processing.
  --skip-treemap             Skip treemap generation for hierarchical size
                             analysis.
  --help                     Show this message and exit.
For full end-to-end development alongside the Sentry monolith, first run sentry in one terminal:
devenv sync
devservices up --mode ingest
devservices serve --workersNext run launchpad in another terminal:
devservices up
launchpad serveAnd finally use the sentry-cli to upload to your local machine:
sentry-cli --log-level DEBUG \
  --url http://dev.getsentry.net:8000/ \
  --auth-token $SENTRY_TOKEN \
  build upload YourBuild.xcarchive \
  --org sentry \
  --project internal# All tests (unit + integration)
make test
# Unit tests only
make test-unit
# Integration tests only
make test-integration
# Integration test with devservices
make test-service-integration# Run all quality checks (check-format + check-lint + check-types)
make check
# Autofix as many checks as possible.
make fix
# Full CI pipeline
make ciSee License for information about Sentry's licensing.
This project also uses compiled binaries for strip and ld. The source code of these is available at https://github.com/tpoechtrager/cctools-port and falls under the Apple Public Source License Version 2.0.
This project uses FFmpeg for audio and video processing. FFmpeg is licensed under the LGPL v2.1+ license. We do not distribute or modify FFmpeg; it is installed as a system dependency via package managers. For more information about FFmpeg licensing, see https://ffmpeg.org/legal.html.