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

2.6 KiB

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:

./gradlew assembleRelease

Expected output path (common):

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

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

apksigner verify --verbose --print-certs dewemoji-vX.Y.Z.apk

4) Generate checksum

Publish SHA-256 so users can verify file integrity.

shasum -a 256 dewemoji-vX.Y.Z.apk

Record output in release notes.


5) Upload APK to your server

Recommended path:

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.

Use immutable names:

dewemoji-v1.1.1.apk
dewemoji-v1.1.2.apk

Avoid re-uploading different binaries under the same filename.