diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4f074fd --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.DS_Store +**/.DS_Store diff --git a/apk-direct-release-guide.md b/apk-direct-release-guide.md new file mode 100644 index 0000000..1c25ed6 --- /dev/null +++ b/apk-direct-release-guide.md @@ -0,0 +1,138 @@ +# 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.