Build & Release
This guide covers building the app for release and creating GitHub Releases via tags.
Build Commands
Debug Build
Release APK (local)
The release APK is output to:
Release App Bundle (Play Store)
iOS Build
Clean Build Artifacts
Signing Setup (Android)
Release APKs and AABs must be signed. Nice TV uses a keystore stored in GitHub Secrets for CI.
Generate a Release Keystore
keytool -genkey -v -keystore upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload
Encode for GitHub Secrets
# On Linux/macOS/Git Bash
base64 upload-keystore.jks | tr -d '\n' > keystore_base64.txt
# On Windows PowerShell
[Convert]::ToBase64String([IO.File]::ReadAllBytes("upload-keystore.jks")) > keystore_base64.txt
Add Secrets to GitHub
Go to Settings → Secrets and variables → Actions and add:
| Secret | Description |
|---|---|
ANDROID_KEYSTORE_BASE64 |
Base64-encoded JKS keystore |
ANDROID_KEY_ALIAS |
Key alias (e.g., upload) |
ANDROID_KEY_PASSWORD |
Key password |
ANDROID_STORE_PASSWORD |
Keystore password |
Creating a Release
- Update the version in
pubspec.yaml:
- Commit the version bump:
- Create and push a tag:
- The GitHub Actions release workflow will automatically:
- Build a signed release APK
- Upload it as a GitHub Release asset
- Upload it as a workflow artifact
Verification Checklist
Smoke on device: sign in, Following tab, watch + chat send, notifications inbox after a followed channel goes live, native HLS failure falls back to embed.