139 lines
2.6 KiB
Markdown
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.
|