android-release
Build, sign, and prepare Android APK and AAB for release. Handles version bumping, building, zipalign (APK), and signing with JKS keystore. Outputs DecentPaste_x.x.x.apk for GitHub releases and signed AAB for Play Console.
When & Why to Use This Skill
This Claude skill automates the end-to-end Android application release process, including version management, building APK and AAB files, zipaligning, and secure signing with JKS keystores. It streamlines the complex workflow of preparing mobile applications for distribution on GitHub and the Google Play Store, ensuring all technical requirements like alignment and verification are met.
Use Cases
- Automated Version Management: Streamlining the 'bump-version' workflow to update versioning across multiple configuration files simultaneously before a release.
- GitHub Release Preparation: Generating and zipaligning signed APKs (DecentPaste_x.x.x.apk) specifically optimized for GitHub release assets.
- Google Play Store Deployment: Building and signing Android App Bundles (AAB) using jarsigner to meet Play Console submission standards.
- Secure Build Pipelines: Facilitating a secure signing environment where the agent handles technical commands while the user provides sensitive credentials locally, maintaining security best practices.
| name | android-release |
|---|---|
| description | Build, sign, and prepare Android APK and AAB for release. Handles version bumping, building, zipalign (APK), and signing with JKS keystore. Outputs DecentPaste_x.x.x.apk for GitHub releases and signed AAB for Play Console. |
Android Release
Build signed APK (GitHub) and AAB (Play Console).
1. Gather Info
Ask user for: version (x.x.x), JKS keystore path, keystore alias. Never ask for password - user enters it during signing.
2. Update Versions
Use /bump-version workflow to update all 4 config files.
3. Build
cd decentpaste-app && yarn tauri android build && cd ..
Outputs (from project root):
- APK:
decentpaste-app/src-tauri/gen/android/app/build/outputs/apk/universal/release/app-universal-release-unsigned.apk - AAB:
decentpaste-app/src-tauri/gen/android/app/build/outputs/bundle/universalRelease/app-universal-release.aab
4. Sign APK
Zipalign BEFORE signing (Claude runs):
zipalign -v 4 <unsigned-apk> DecentPaste_VERSION_aligned.apk
Signing (user runs - contains password):
apksigner sign --ks <keystore> --ks-key-alias <alias> --out DecentPaste_VERSION.apk DecentPaste_VERSION_aligned.apk
After user confirms, delete aligned file.
5. Sign AAB
Use jarsigner not apksigner - AABs are JAR-like bundles. No zipalign needed.
User runs:
jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 -keystore <keystore> <aab-path> <alias>
cp <aab-path> DecentPaste_VERSION.aab
6. Verify & Report
apksigner verify --verbose DecentPaste_VERSION.apk
jarsigner -verify -verbose DecentPaste_VERSION.aab
Report: files created, versions updated, next steps (commit, tag, upload).