# 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 \ --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