stardroid-v1/.claude/skills/deploy-play-store/SKILL.md
Deploy Sky Map to the Google Play Store using fastlane. Trigger on "deploy to Play Store", "release to internal", "promote to beta/production", "upload metadata", or similar Play Store release requests.
npx skillsauth add sky-map-team/stardroid deploy-play-storeInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Manages the full release pipeline: build → internal → alpha → beta → production.
fastlane/play-store-credentials.json — service account key (never commit changes to this file)fastlane installed: bundle exec fastlane --version or fastlane --versionno-checkin.properties in app/ (required for release signing)export JAVA_HOME=$(/usr/libexec/java_home -v 17)Run fastlane commands from the repo root with bundle exec fastlane android <lane> (or plain
fastlane android <lane> if not using Bundler).
The standard path is: internal → alpha → beta → production. Always start at internal and promote rather than uploading directly to later tracks.
Internal → Alpha (Closed Testing) → Beta (Open Testing, 10%) → Production (10% rollout)
Before deploying, confirm these are done:
/release-splash)/skymap-sponsors)/skymap-contributors skill now before continuing./whats-new <last-tag>) — both whatsnew_content.xml and
fastlane/metadata/android/en-US/changelogs/default.txtmasterThis increments the version code, builds the release AAB, and uploads to the internal track.
bundle exec fastlane android internal
The build output is app/build/outputs/bundle/gmsRelease/app-gms-release.aab.
Metadata and screenshots are not uploaded by this lane — use upload_metadata separately.
Upload store listing text, changelogs, and/or images independently of a binary upload.
# Store text only (descriptions, title)
bundle exec fastlane android upload_metadata
# Include changelogs (whatsnew)
bundle exec fastlane android upload_metadata whatsnew:true
# Include screenshots/images
bundle exec fastlane android upload_metadata imgs:true
# Everything
bundle exec fastlane android upload_metadata all:true
# Skip store text, changelogs only
bundle exec fastlane android upload_metadata store:false whatsnew:true
To attach changelogs to a specific already-uploaded version code:
bundle exec fastlane android upload_metadata whatsnew:true version_code:1234
After verifying the internal build is stable:
bundle exec fastlane android promote_to_alpha
bundle exec fastlane android promote_to_beta
bundle exec fastlane android promote_to_production
Production starts at 10%. Increase the rollout percentage manually in the Play Console as confidence grows.
# Bump version name (e.g., for a named release). No spaces in name.
bundle exec fastlane android bump_version name:"1.5.0:Earth"
# Increment version code only (done automatically by the `internal` lane)
bundle exec fastlane android increment_version_code
Version name and code live in app/build.gradle. Commit the bump before deploying.
Capture Play Store screenshots using a connected device or emulator:
bundle exec fastlane android screenshots
Add --device_type=sevenInch for tablet screenshots. Results land in
fastlane/metadata/android/en-US/images/.
These upload directly without going through internal first. Prefer the promote lanes above.
bundle exec fastlane android alpha # Direct to alpha
bundle exec fastlane android beta_yes_im_sure # Direct to beta
bundle exec fastlane android production_yes_im_sure # Direct to production
fastlane/play-store-credentials.json is present and the
service account has the correct Play Console permissions.no-checkin.properties exists in app/ and JAVA_HOME points to
Java 17.internal lane auto-increments; if a manual upload already used
the next code, increment again.INSTALL_FAILED_UPDATE_INCOMPATIBLE on device: uninstall the Play Store version first with
adb uninstall com.google.android.stardroid.| File | Purpose |
|------|---------|
| fastlane/Fastfile | Lane definitions |
| fastlane/Appfile | Package name + credentials path |
| fastlane/play-store-credentials.json | Service account key (do not modify) |
| fastlane/metadata/android/en-US/changelogs/default.txt | Play Store changelog (≤350 chars) |
| fastlane/metadata/android/ | Store listing text and images per locale |
| app/build.gradle | versionCode and versionName |
documentation
Fully automated release note generator for Sky Map. Just provide the last tag.
data-ai
Fetches Buy Me a Coffee supporters and updates the app/src/main/res/values/notranslate-sponsors.xml file. Trigger this when asked to "sync sponsors", "update donors", or "refresh credits".
data-ai
Fetches GitHub contributors for Sky Map and updates the app/src/main/res/values/notranslate-contributors.xml file. Trigger this when asked to "sync contributors", "update contributors", or "refresh credits".
data-ai
--- name: release-splash description: Update the Sky Map splash screen for a new planetary release. Composites a portrait image onto the base splash with a branded strip. Use when asked to "update splash", "add splash for X release", or "create release branding". ARGUMENTS: "<ReleaseName> <path/to/source.png> [crop x1,y1,x2,y2]" disable-model-invocation: true --- # Sky Map Release Splash Screen Update the splash screen assets for a new Sky Map release. ## Arguments `$ARGUMENTS` should be: `<