# 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.

- Skill: `majiayu000/android-release` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add majiayu000/android-release`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/android-release/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/android-release

---


# 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

```bash
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):
```bash
zipalign -v 4 <unsigned-apk> DecentPaste_VERSION_aligned.apk
```

Signing (user runs - contains password):
```bash
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:
```bash
jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 -keystore <keystore> <aab-path> <alias>
cp <aab-path> DecentPaste_VERSION.aab
```

## 6. Verify & Report

```bash
apksigner verify --verbose DecentPaste_VERSION.apk
jarsigner -verify -verbose DecentPaste_VERSION.aab
```

Report: files created, versions updated, next steps (commit, tag, upload).

