Files
Kordant/android/docs/play-console-checklist.md

5.5 KiB
Raw Permalink Blame History

Play Console Release Checklist

Track all Play Console configuration items for Kordant release.

Phase 1: Preparation

Keystore & Signing

  • Generate release keystore (./scripts/generate-release-key.sh)
  • Back up keystore to password manager
  • Back up keystore to offline secure storage
  • Create key.properties from template
  • Verify key.properties is in .gitignore
  • Test signed build: ./gradlew bundleProdRelease
  • Verify R8 obfuscation: check mapping.txt in build outputs

App Assets

  • App icon (512×512 PNG, non-transparent)
  • Feature graphic (1024×500, JPG or PNG)
  • Phone screenshots (2-8, 16:9 or 9:16)
  • Tablet screenshots (2-8, if supporting tablets)
  • Promo video (optional, 30-120 seconds)
  • Privacy policy URL live and accessible
  • Terms of service URL live and accessible

Certificate Pins

  • Replace placeholder pins in network_security_config.xml
  • Extract production cert hash:
    echo | openssl s_client -connect api.kordant.com:443 -servername api.kordant.com 2>/dev/null \
      | openssl x509 -pubkey -noout \
      | openssl pkey -pubin -outform der 2>/dev/null \
      | openssl dgst -sha256 -binary \
      | openssl enc -base64
    
  • Add backup pin for rotation

Phase 2: Play Console Setup

App Creation

  • Create app in Play Console
  • App name: Kordant
  • Default language: English (US)
  • Type: App
  • Pricing: Free

App Signing

  • Upload upload key certificate
  • Enable Google Play App Signing
  • Download and backup the Google-managed app signing key
  • Record SHA-256 fingerprint for Firebase/Google Sign-In

Default App Information


Phase 3: Store Listing

Main Store Listing

  • Title: Kordant
  • Short description (80 chars)
  • Full description (4000 chars)
  • Category: Tools
  • App icon uploaded
  • Feature graphic uploaded
  • Phone screenshots uploaded
  • Tablet screenshots uploaded (if applicable)

Localization

  • English (US) — default
  • Additional languages (plan for later)

Phase 4: Distribution

Pricing & Distribution

  • Price: Free
  • Countries: Select target markets
  • Age rating: Complete IARC questionnaire

Content Rating (IARC)

  • In-Game Purchases: Yes (subscriptions)
  • Users Interact: Yes
  • Shares Info: Yes
  • All other content questions answered
  • Expected rating: Everyone or Everyone 10+

Data Safety Form

  • Data types declared
  • Collection purposes explained
  • Data sharing disclosed
  • Encryption practices documented
  • Data deletion option described

Phase 5: Testing

Internal Testing Track

  • Internal testing track created
  • Testers added (minimum 20)
  • Testers accepted invitations
  • First AAB uploaded
  • AAB processing complete
  • Testers can install from testing link
  • App functions correctly on test devices

Firebase Test Lab

  • Robo tests passing on Pixel 6
  • Robo tests passing on Samsung Galaxy S21
  • Robo tests passing on Xiaomi Redmi
  • Instrumentation tests passing on all devices
  • No crashes across device matrix
  • Cold start under 1.5s on Pixel 6

Phase 6: Monetization (if applicable)

Subscriptions

  • Pro Monthly (pro_monthly)
  • Pro Annual (pro_annual)
  • Family Monthly (family_monthly)
  • Family Annual (family_annual)

Managed Products

  • Single Scan (single_scan)
  • Removal Pack (removal_pack)

Promo Codes

  • Internal testing codes generated
  • Beta tester codes generated

Phase 7: Security & Integrity

Play Integrity API

  • Play Integrity enabled in Play Console
  • PlayIntegrityManager integrated in app
  • Server-side verification configured
  • Nonce-based replay protection implemented

App Integrity

  • Certificate pinning active (real hashes)
  • Root detection blocking/degrading gracefully
  • EncryptedSharedPreferences for sensitive data
  • Network security config blocks cleartext
  • Backup disabled (android:allowBackup="false")

Phase 8: Pre-Release Verification

Build Verification

  • Release build: ./gradlew bundleProdRelease
  • No R8/ProGuard crashes
  • All TRPC endpoints functional
  • Google Sign-In working with production SHA-256
  • FCM push notifications working
  • Deep links routing correctly
  • Offline queue resolving sync conflicts
  • Token refresh working silently

Play Console Verification

  • All sections show green/complete
  • No policy violations
  • Store listing preview looks correct
  • All screenshots display properly
  • Feature graphic displays correctly

Final Checks

  • Version code incremented
  • Version name updated
  • Release notes written
  • ProGuard mapping.txt saved
  • Keystore backed up

Notes

  • Keystore: If lost, you can still upload new versions with a new key, but existing users won't be able to update. Google Play App Signing mitigates this risk.
  • Version codes: Must be strictly increasing. Never reuse a versionCode.
  • Processing time: AAB processing can take 10-30 minutes after upload.
  • Review time: First-time app review can take up to 7 days. Subsequent updates are faster.
  • Internal testing: Fastest distribution method. Testers get immediate access after rollout.