Repository navigation
Android: Capacitor shell + signed-release workflow + Play listing (Kam na mši) - #32
Merged
Merged
Conversation
…m na mši) `npx cap add android` committed (icons/splash from resources/ via capacitor- assets), app name "Kam na mši", only the permissions the code uses (coarse/ fine location on-device, POST_NOTIFICATIONS for reminders), gradle version + signing from -P/env (unsigned when no keystore — never a debug key on a release), capacitor.config android block. release-android.yml: tag android-vX.Y.Z → web build → cap sync → signed .aab + .apk → aapt2/apksigner read-back → GitHub Release → Play internal track when PLAY_SERVICE_ACCOUNT_JSON exists; ships dark and says so otherwise. scripts/android-keystore.sh creates the upload key + sets the four secrets in one run. ci.yml gains an `android` assembleDebug gate so the shell can't rot. Store: docs/store/play-metadata.md (listing, data safety, content rating, owner steps), feature graphic + 512 icon (scripts/play-graphics.mjs), `phone` 1080×1920 device in store-shots.spec.ts, whatsnew text. Verified locally with the Android 36 SDK: assembleDebug + bundleRelease green; badging shows label 'Kam na mši', versionName 1.2.0, the intended permissions; a throwaway keystore signs and apksigner verifies. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RicgHjbdeNb3ZGA6DMYMfS
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 Android version of Kam na mši, ready for Google Play:
android/(Capacitor 8 shell, committed) with icons + splash generated fromresources/, app nameKam na mši, and only the permissions the code uses (coarse/fine location on-device,POST_NOTIFICATIONSfor reminders). Gradle readsversionName/versionCodefrom-Pproperties and signs the release only when the upload keystore is in the environment — unsigned otherwise, never a debug key..github/workflows/release-android.yml: tagandroid-vX.Y.Z→ web build →cap sync→ signed.aab+.apk→aapt2/apksignerread-back → GitHub Release → Play internal track whenPLAY_SERVICE_ACCOUNT_JSONexists (ships dark and says so otherwise).scripts/android-keystore.sh: one run creates the upload key and sets the fourANDROID_*secrets viagh.ci.yml: newandroidjob (assembleDebug) so the shell can't rot.docs/store/play-metadata.md(listing copy, data safety, content rating, declarations, the owner-only console steps),store-assets/android/feature graphic 1024×500 + icon 512 (scripts/play-graphics.mjs),phone1080×1920 device instore-shots.spec.ts,whatsnew-cs-CZ.Why
Same app, same data, second store. The shell was already portable (ios-app.md §14); what was missing was the release path and the forms. Standard written up in flywheel PR #42 (
android-app.md).Proof
Local, with the Android 36 SDK:
gradlew assembleDebug bundleReleasegreen (APK 6.5 MB, AAB 4.7 MB);aapt2 dump badging→ labelKam na mši, versionName 1.2.0, versionCode 101, the intended permissions; a throwaway keystore signsassembleReleaseandapksigner verifyaccepts it.npm run typecheckclean; both workflows parse. TheandroidCI job on this PR is the runnable check.androidCI gate; store-shots device🤖 Generated with Claude Code
https://claude.ai/code/session_01RicgHjbdeNb3ZGA6DMYMfS
Generated by Claude Code