Repository navigation
Promote a tested build to Play production and App Store review - #12
Merged
Merged
Conversation
…view Once the internal / TestFlight build is tested, one command per app puts that same build into production, with nothing rebuilt or re-uploaded: - tool/play_promote.py moves the versionCode from the internal track to production (full rollout, or staged with --rollout), with release notes per language, or the internal release's notes carried over. - tool/asc_submit.py (App Store Connect API, the ios/deploy.env key) checks the build is processed, creates or reuses the App Store version, attaches the build, sets What's New and submits for review; live on approval, or held with --manual-release. A new version without What's New fails before anything in App Store Connect changes. - tool/promote.sh <app> reads the version from the app's pubspec.yaml and the keys from its deploy.env files; --dry-run reads and validates only. The App Store has no Serbian, so --notes-sr goes to the Croatian listing. The release skill, CLAUDE.md and the deploy.env examples (the Play service account now needs "Release apps to production") describe it. First used for Bird Tracker 1.0.24 and Herp Tracker 1.0.8. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
One command per app puts the build that was tested on the Play internal track / TestFlight into production — nothing is rebuilt or re-uploaded.
What it does
Google Play (
tool/play_promote.py): moves the versionCode frominternaltoproductionin one edit. Full rollout by default,--rollout 0.xfor a staged one. Release notes per language (en-US, sr), or the internal release's notes carried over.App Store (
tool/asc_submit.py, App Store Connect API with the key fromios/deploy.env):--manual-releaseholds it).A new version without What's New fails before anything changes. The App Store has no Serbian, so
--notes-srgoes to the Croatian listing and every other listing gets the English text.tool/promote.sh <app>reads the version from the app'spubspec.yamland the package/bundle ids and keys from the app's files.--android/--iosrestrict it to one store.The
releaseskill,CLAUDE.mdand thedeploy.env.examplefiles are updated. The Play service account now also needs "Release apps to production".Testing
--rollout 1.5, a new iOS version without notes) fails before any change.hrlisting got the English text this time. It is untested live: 1.0.8 is in review, so a dry run stops before the listings.🤖 Generated with Claude Code