Closer/docs/release/internal-testing-checklist.md

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