android-release

decentpaste's avatarfrom decentpaste

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.

⭐100stars🔀2forks📁View on GitHub🕐Updated Jan 3, 2026

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.
nameandroid-release
descriptionBuild, 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).