74 lines
2.9 KiB
Markdown
74 lines
2.9 KiB
Markdown
# Internal Testing Release Checklist
|
|
|
|
Steps to prepare and distribute a private MVP build for internal testing.
|
|
|
|
## 1. Signing Config
|
|
|
|
- [ ] Generate or locate keystore for signing
|
|
- Keytool command: `keytool -genkeypair -v -keystore closer-release.jks -keyalg RSA -keysize 2048 -validity 10000 -alias closer`
|
|
- [ ] Store keystore file securely (NOT in git)
|
|
- [ ] Add signing config to `app/build.gradle.kts`:
|
|
- `storeFile`, `storePassword`, `keyAlias`, `keyPassword`
|
|
- Read from `local.properties` or environment variables
|
|
- [ ] Verify debug and release build variants both compile
|
|
|
|
## 2. Build Configuration
|
|
|
|
- [ ] Set `applicationId` to `app.closer` (verify not `com.couplesconnect`)
|
|
- [ ] Set versionCode and versionName in `app/build.gradle.kts`
|
|
- [ ] Set `minSdk`, `targetSdk` to appropriate values
|
|
- [ ] Verify `RC_API_KEY` in `local.properties` (or placeholder for testing)
|
|
- [ ] Verify `google-services.json` is present and points to correct Firebase project
|
|
- [ ] Remove or guard debug logging (`android.util.Log` calls)
|
|
|
|
## 3. Firebase Configuration
|
|
|
|
- [ ] Firebase project created (or confirmed existing)
|
|
- [ ] Authentication enabled: Email/Password sign-in method
|
|
- [ ] Firestore rules deployed and tested
|
|
- [ ] Cloud Functions deployed:
|
|
- [ ] `revenueCatWebhook`
|
|
- [ ] `syncEntitlement`
|
|
- [ ] `sendDailyQuestionReminder`
|
|
- [ ] `sendPartnerAnsweredNotification`
|
|
- [ ] `health`
|
|
- [ ] FCM enabled for the project
|
|
- [ ] RevenueCat project configured with Firebase integration (placeholder for now)
|
|
|
|
## 4. Test Accounts
|
|
|
|
- [ ] Create 2 test accounts (couple A: user1@test.com / user2@test.com)
|
|
- [ ] Create 1 solo test account (single user: solo@test.com)
|
|
- [ ] Verify sign-up → profile creation → home flow on each
|
|
- [ ] Pair test couple via invite code
|
|
- [ ] Verify paired state persists across app restarts
|
|
|
|
## 5. Android App Distribution
|
|
|
|
- [ ] Install Firebase App Distribution Gradle plugin
|
|
- [ ] Add `app distribution` section to `app/build.gradle.kts`
|
|
- [ ] Build release APK: `./gradlew :app:assembleRelease`
|
|
- [ ] Distribute via Firebase App Distribution:
|
|
```bash
|
|
firebase appdistribution:distribute app/build/outputs/apk/release/app-release.apk \
|
|
--app <FIREBASE_APP_ID> \
|
|
--groups internal-testers \
|
|
--release-notes "Private MVP v0.1.x"
|
|
```
|
|
- [ ] Add tester email addresses to Firebase App Distribution group
|
|
- [ ] Testers receive download link via email
|
|
|
|
## 6. Pre-Distribution Smoke Test
|
|
|
|
- [ ] Install release APK on a physical device
|
|
- [ ] Walk through the full QA checklist (`docs/qa/private-mvp-checklist.md`)
|
|
- [ ] Verify no crashes on cold start, warm start, or background restore
|
|
- [ ] Verify notification permissions prompt appears on Android 13+
|
|
- [ ] Verify paywall loads (even with placeholder API key)
|
|
|
|
## 7. Post-Distribution
|
|
|
|
- [ ] Collect crash reports from Firebase Crashlytics
|
|
- [ ] Monitor Firestore usage in Firebase Console
|
|
- [ ] Monitor Cloud Function logs for errors
|
|
- [ ] Collect tester feedback via dedicated channel |