Sentry Kotlin Multiplatform (KMP) SDK and Gradle Plugin.
- Build tool: Gradle via
./gradlew - Format:
./gradlew spotlessApply - Lint:
./gradlew detekt - Test:
./gradlew build(builds and runs tests) - API check:
./gradlew apiCheck(binary compatibility) - Full CI:
make compile(runs apiCheck, detekt, build, samples)
Before committing, ensure these pass:
./gradlew spotlessApply
./gradlew detekt
./gradlew build
./gradlew apiCheck├── sentry-kotlin-multiplatform/ # Core KMP SDK
│ └── src/
│ ├── commonMain/ # Shared API & expect declarations
│ ├── commonJvmMain/ # Shared JVM + Android code
│ ├── androidMain/ # Android actual implementations
│ ├── jvmMain/ # JVM actual implementations
│ ├── appleMain/ # Shared Apple (iOS/macOS/tvOS/watchOS)
│ ├── iosMain/ # iOS-specific
│ └── commonTvWatchMacOsMain/ # tvOS/watchOS/macOS-specific
├── sentry-kotlin-multiplatform-gradle-plugin/ # Optional Gradle Plugin
├── sentry-samples/ # Sample apps (CocoaPods & SPM)
└── buildSrc/ # Build configuration (Config.kt)
- expect/actual pattern: Shared API in
commonMain, platform implementations inandroidMain,appleMain,jvmMain, etc. - Public API docs: All public classes/properties in
commonMainmust have KDoc (enforced by detekt) - Formatting: Spotless with ktlint — run
./gradlew spotlessApplybefore committing - Detekt config:
config/detekt/detekt.yml
AI commits MUST include:
Co-Authored-By: (the agent model's name and attribution byline)