Thai2Viet / Tieng Thai Yanisa - Store Release Checklist Mobile app scope - Learner app only. - Admin workspace remains desktop web only. - Manual QR payment remains web only. - Digital subscriptions in Android/iOS app must use Google Play Billing or Apple In-App Purchase. - Machine-readable audit index: /audit/audit-index.json - Pre-production local gate report: /audit/preproduction-local-check.txt - Latest generated readiness report: /audit/production-readiness-report.txt Before Android internal testing - Set PUBLIC_API_BASE_URL to the production HTTPS API origin. - Set APP_BASE_URL to the production HTTPS web origin. - Install JDK 17+ and set JAVA_HOME. - Create android/keystore.properties from android/keystore.properties.example. - Run npm run mobile:prepare. - Run npm run mobile:preflight:release. - Run npm run mobile:android:bundle. Before iOS TestFlight - Build on macOS with Xcode. - Configure bundle id and signing in Apple Developer. - Configure Apple in-app purchase products matching store/billing/products.json. - Set Apple receipt validation credentials on the server. - Confirm account deletion is reachable inside the app. - Confirm logged-in account deletion request form submits to /api/account-deletion/request. Billing readiness - /api/mobile/billing/readiness must return enabled=true only after live server receipt validation is configured. - App paid plan buttons must remain disabled while readiness is not enabled. - App UI must not display QR/manual transfer instructions for digital subscriptions. Policy URLs - Privacy Policy must be public, active, non-editable by visitors and linked inside the app. - Terms of Use must be public and linked inside the app. - Account deletion must be available inside the app and on the web. - Admin must review /api/admin/account-deletion-requests during support/audit operations. - Support/contact URL must be active. Screenshots - Dictionary search - Word detail - Saved words / flashcards - Q&A list and detail - Courses - Blog - Profile / subscription status Final checks - npm test - npm run build - npm run smoke - npm run secret:check - npm run preprod:local - npm run release:local - npm run mobile:preflight - npm run mobile:api:preflight with production PUBLIC_API_BASE_URL