Files
dewemoji/apk-direct-release-guide.md
2026-02-21 05:48:22 +07:00

139 lines
2.6 KiB
Markdown

# Direct APK Release Guide (No Play Store)
This guide is for shipping Dewemoji Android builds as downloadable `.apk` files from your own site.
## 1) One-time prerequisites
1. Decide and keep a stable Android package id (example: `com.dewemoji.app`).
2. Create and securely store a release keystore.
3. Keep the same keystore for all future updates.
4. Keep `versionCode` strictly increasing for each release.
If keystore or package id changes, users will not receive in-place updates.
---
## 2) Build release APK
Use your Android build command (NativePHP/Capacitor/Gradle), and ensure output is a **release APK**.
Typical Gradle command:
```bash
./gradlew assembleRelease
```
Expected output path (common):
```bash
android/app/build/outputs/apk/release/app-release.apk
```
---
## 3) Sign and verify APK
If your build pipeline does not auto-sign, sign manually.
### A) Sign
```bash
apksigner sign \
--ks /path/to/keystore.jks \
--ks-key-alias your_alias \
--out dewemoji-vX.Y.Z.apk \
android/app/build/outputs/apk/release/app-release.apk
```
### B) Verify signature
```bash
apksigner verify --verbose --print-certs dewemoji-vX.Y.Z.apk
```
---
## 4) Generate checksum
Publish SHA-256 so users can verify file integrity.
```bash
shasum -a 256 dewemoji-vX.Y.Z.apk
```
Record output in release notes.
---
## 5) Upload APK to your server
Recommended path:
```text
https://dewemoji.com/downloads/dewemoji-vX.Y.Z.apk
```
Recommended server headers:
1. `Content-Type: application/vnd.android.package-archive`
2. `Content-Disposition: attachment; filename="dewemoji-vX.Y.Z.apk"`
3. Serve over HTTPS only
---
## 6) Update Download page content
On your `/download` page, show:
1. Version (`vX.Y.Z`)
2. Build date
3. File size
4. Minimum Android version
5. SHA-256 checksum
6. Install instructions
7. Changelog
Recommended install instructions for users:
1. Download APK from official Dewemoji URL.
2. Open file on Android.
3. Allow installation from browser/files app if prompted.
4. Install/update.
---
## 7) Release checklist
Before publishing:
1. Login works
2. Search works
3. Copy/insert flow works on device
4. Theme/tone UI works
5. Billing links/webviews (if used) open correctly
6. No crash on cold start
7. Version updated and visible in app
---
## 8) Quick rollback
If latest APK is bad:
1. Re-point Download button to previous APK URL.
2. Keep bad APK file archived (do not overwrite silently).
3. Publish rollback notice/changelog update.
---
## 9) Recommended file naming
Use immutable names:
```text
dewemoji-v1.1.1.apk
dewemoji-v1.1.2.apk
```
Avoid re-uploading different binaries under the same filename.