feat(mobile): dev app gets its own label, launcher icon and version code - #693
Merged
Merged
Conversation
…rsion code The dev and prod shells already install side by side (distinct applicationId) but looked identical on the home screen. The label and launcher icon are now build inputs next to the id: - VOGT_ANDROID_APP_NAME (the variable capacitor.config.ts already reads for appName) generates app_name/title_activity_main via resValue, so the two files cannot disagree; the static strings leave strings.xml. - VOGT_ANDROID_APP_ICON selects the launcher set through manifest placeholders: default (shipped icon) or dev (amber background, dark V, DEV ribbon; adaptive for API 26+, flattened layer-list for minSdk 23). Any other value fails the build. - release-mobile-dev.yml sets 'Vogt Dev' + dev, and computes a monotonic dev versionCode (<semver code> x 10000 + run number) with versionName <version>-dev.<run>, so a dev re-upload is never refused for a code Play has already seen. release.yml sets nothing and prod is unchanged. tests/test_mobile_identity.py asserts the dev workflow builds under its own label and icon and that the generated strings are not also static. Verified locally: assembleDebug with both variants; merged manifest shows the dev label/icon and the default one is byte-identical to before. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YG9Nsxqc6CREb56Uisnmmy
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YG9Nsxqc6CREb56Uisnmmy
thedancingdeveloper
force-pushed
the
fix/android-dev-branding
branch
from
September 10, 2026 23:21
f78543b to
f0a6a49
Compare
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.
What
The dev and prod Android shells install side by side but were indistinguishable on the home screen. The dev app now shows as Vogt Dev with an amber launcher icon (dark V glyph, DEV ribbon), and its Play version code climbs on every dev build.
How
VOGT_ANDROID_APP_NAME(already read bycapacitor.config.ts) now also drivesbuild.gradle, which generatesapp_name/title_activity_mainas resValues; the static strings leavestrings.xmlso the two can't disagree.VOGT_ANDROID_APP_ICON=default|devselects the launcher set via manifest placeholders. The dev set is adaptive for API 26+ with a flattened layer-list fallback for minSdk 23. Any other value fails the build. Both sets are pinned inres/raw/keep.xml.release-mobile-dev.ymlsets both, and computesversionCode = semver code × 10000 + run number,versionName = <version>-dev.<run>— the last dev AAB upload was refused because6002had already been used.release.ymlsets nothing: prod label, icon and versioning are unchanged.tests/test_mobile_identity.pygains a test holding the workflow and build files to this;docs/mobile-release-validation.mddocuments the three inputs.Verified
assembleDebuglocally with dev env (merged manifest:Vogt Dev,@mipmap/ic_launcher_dev) and with defaults (unchanged); a badVOGT_ANDROID_APP_ICONfails configuration with a named error; identity tests pass.🤖 Generated with Claude Code
https://claude.ai/code/session_01YG9Nsxqc6CREb56Uisnmmy