finish android task suite
This commit is contained in:
84
android/scripts/README.md
Normal file
84
android/scripts/README.md
Normal file
@@ -0,0 +1,84 @@
|
||||
# Android Build Scripts
|
||||
|
||||
Scripts for building, signing, and distributing the Kordant Android app.
|
||||
|
||||
## Scripts
|
||||
|
||||
### `generate-release-key.sh`
|
||||
Generates a release keystore and configures signing for Google Play.
|
||||
|
||||
```bash
|
||||
chmod +x scripts/generate-release-key.sh
|
||||
./scripts/generate-release-key.sh
|
||||
```
|
||||
|
||||
Creates:
|
||||
- `kordant-release.keystore` — The keystore file (KEEP SECURE)
|
||||
- `key.properties` — Gradle signing credentials (in `.gitignore`)
|
||||
|
||||
### `build-release-aab.sh`
|
||||
Builds a signed Android App Bundle (AAB) for Google Play upload.
|
||||
|
||||
```bash
|
||||
chmod +x scripts/build-release-aab.sh
|
||||
./scripts/build-release-aab.sh # prodRelease (default)
|
||||
./scripts/build-release-aab.sh --variant=devRelease
|
||||
```
|
||||
|
||||
Requires:
|
||||
- `key.properties` configured (copy from `key.properties.template`)
|
||||
- Android SDK configured in `local.properties`
|
||||
|
||||
## Build Variants
|
||||
|
||||
| Variant | Application ID | API URL | Use Case |
|
||||
|---------|---------------|---------|----------|
|
||||
| `prodRelease` | `com.kordant.android` | `api.kordant.com` | Google Play production |
|
||||
| `devRelease` | `com.kordant.android.dev` | `10.0.2.2:3000` | Internal testing |
|
||||
| `prodDebug` | `com.kordant.android.debug` | `api.kordant.com` | Debug with prod config |
|
||||
| `devDebug` | `com.kordant.android.dev.debug` | `10.0.2.2:3000` | Development |
|
||||
|
||||
## Gradle Commands
|
||||
|
||||
```bash
|
||||
# Build release AAB (for Play Store)
|
||||
./gradlew bundleProdRelease
|
||||
|
||||
# Build release APK (for sideloading)
|
||||
./gradlew assembleProdRelease
|
||||
|
||||
# Build debug APK
|
||||
./gradlew assembleDevDebug
|
||||
|
||||
# Run unit tests
|
||||
./gradlew test
|
||||
|
||||
# Run instrumentation tests (requires device/emulator)
|
||||
./gradlew connectedAndroidTest
|
||||
|
||||
# Generate baseline profile (for startup optimization)
|
||||
./gradlew baselineProfileProdRelease
|
||||
|
||||
# Clean build
|
||||
./gradlew clean
|
||||
```
|
||||
|
||||
## Output Locations
|
||||
|
||||
| Build Type | Output Path |
|
||||
|------------|-------------|
|
||||
| AAB | `app/build/outputs/bundle/prodRelease/app-prod-release.aab` |
|
||||
| APK | `app/build/outputs/apk/prod/release/app-prod-release.apk` |
|
||||
| Test APK | `app/build/outputs/apk/androidTest/prod/debug/app-prod-debug-androidTest.apk` |
|
||||
| ProGuard mapping | `app/build/outputs/mapping/prodRelease/mapping.txt` |
|
||||
| Baseline profile | `app/build/outputs/baselineProfiles/prodRelease/baseline-prof.txt` |
|
||||
|
||||
## Signing
|
||||
|
||||
The app uses Google Play App Signing. The upload key is managed via `key.properties`:
|
||||
|
||||
1. Copy template: `cp key.properties.template key.properties`
|
||||
2. Edit with your credentials
|
||||
3. Build: `./gradlew bundleProdRelease`
|
||||
|
||||
The `key.properties` file is in `.gitignore` and should NEVER be committed.
|
||||
Reference in New Issue
Block a user