Files
gp/launch/play-console/release-checklist.md
2026-06-11 00:10:50 +08:00

110 lines
5.2 KiB
Markdown

# Release Checklist
## Dormant Account Rescue Priority
Google Play warning shown by account owner:
- Risk: developer account may be closed because it is dormant / unused.
- Fix deadline: 2026-06-14.
- Current date when recorded: 2026-06-09.
Google's official inactive-account guidance says the account owner should complete both actions before the deadline:
1. Verify Play developer account contact email and phone number.
2. Create and publish an app, publish an update, or safely upload through internal testing / closed testing if the app is not ready for public production.
For this project, the fastest low-risk route is:
1. Verify account email and phone in Play Console account details.
2. Create the Focus Seed app record.
3. Upload the signed AAB to internal testing first.
4. Complete required App content sections: privacy policy, Data safety, content rating, target audience, ads declaration, app access.
5. Add store listing text, screenshots, icon, and feature graphic.
6. Send changes for review as soon as Play Console allows submission.
7. If production access is not available, keep the internal/closed testing upload as the activity evidence and follow any Play Console testing requirement shown in the account.
Do not create a new developer account while this warning is active. Resolve this account directly.
## Required Closed Test For This Account
Play Console indicates production access is locked for this personal developer account.
- Internal testing is optional and fast, but does not unlock production access.
- Closed testing is required before applying for production.
- Minimum: 12 opted-in testers for at least 14 continuous days.
- Recommended: invite 20 people and aim for 15+ opted-in testers to keep a buffer.
- Use `closed-testing-plan.md` for tester recruitment messages, checklist, tracking table, and production access application notes.
## Region And Localization Gate
Use `region-localization-strategy.md` before selecting countries/regions in Play Console.
V1 recommendation:
- Do not select all countries by default.
- Use English-only listing and UI.
- For production or closed testing, start with English-first countries/regions: United States, Canada, Australia, New Zealand, Singapore, India, Philippines, and Malaysia.
- Defer EU/EEA, United Kingdom, Switzerland, South Korea, Japan, Brazil/LATAM, and MENA until the matching privacy wording, localization, cultural QA, and monetization checks are complete.
- If only internal testing is used for urgent account rescue, upload first; internal testing is not constrained the same way as production/open/closed country targeting.
## Build Evidence
- App Bundle: `build/app/outputs/bundle/release/app-release.aab`
- Size: about 21.1 MB
- Version: `1.0.0+1`
- Package ID: `com.dailyanchor.focusseed`
- minSdk: 26
- targetSdk: 35
- Release signing: local upload key configured
- 512x512 Play listing icon: `launch/screenshots/focus-seed-icon-512-play.png`
## Verification Completed
- `flutter analyze`: passed
- `flutter test`: passed
- `flutter build appbundle --release`: passed
- Modular architecture refactor: passed analyze/test/build after splitting `main.dart` into app, models, data, services, features, and widgets.
- Web visual smoke test: passed for Today and Timer screens.
- Android release smoke test: passed on MT2110 / Android 14 after fixing native `MainActivity` package path to match `com.dailyanchor.focusseed`.
- Real device screenshots captured: `device-01-today.png`, `device-02-timer.png`, `device-03-habits.png`, `device-04-reflect.png`, `device-05-settings-clean.png`.
- V1 settings screen hides unfinished ads/subscription placeholders; monetization remains code-level no-op infrastructure only.
- Manifest reviewed: no INTERNET, AD_ID, location, camera, contacts, SMS, or storage permissions.
- V1 contains no real ad, billing, analytics, or remote config SDK.
## Manifest Notes
Merged manifest includes:
- `android:minSdkVersion="26"`
- `android:targetSdkVersion="35"`
- Flutter text processing query
- AndroidX signature-level dynamic receiver permission
No dangerous user-data permissions are declared.
## Before Upload
1. Publish the privacy policy at a public URL.
2. Confirm support email `leavysong@gmail.com` is correct and accessible.
3. Add the privacy policy URL in Play Console.
4. Confirm account eligibility:
- If production access exists, upload to internal testing first, then production.
- If this is a new personal developer account created after 2023-11-13, create a closed test with at least 12 testers for 14 days before production access.
5. Prepare real screenshots from the app.
6. Replace launcher icon if desired.
7. Choose countries/regions using `region-localization-strategy.md`.
8. Keep `android/focus-seed-upload.jks` and `android/key.properties` safe. You need the same upload key for future updates.
## Upload Steps
1. Create app in Play Console.
2. Fill app details and App content sections.
3. Upload `app-release.aab`.
4. Complete Data safety using `data-safety-guide.md`.
5. Complete content rating questionnaire.
6. Add privacy policy URL.
7. Add store listing text from `store-listing.md`.
8. Select countries/regions according to the V1 region strategy.
9. Add screenshots and feature graphic.
10. Submit to internal testing first when possible.