Play Store Deployment
Guide for deploying to Google Play Store.
Prerequisites
- Google Play Console access
- Service account JSON key
- Fastlane installed
Setup
1. Service Account
- Create service account in Google Cloud Console
- Grant access in Play Console
- Download JSON key file
2. Environment Variables
GOOGLE_PLAY_JSON_KEY_PATH=/path/to/key.jsonDeployment Commands
Internal Testing
fastlane android internalBeta (Open Testing)
fastlane android betaProduction
fastlane android releaseFastlane Configuration
android/fastlane/Fastfile:
platform :android do desc "Deploy to internal testing track" lane :internal do gradle(task: "clean bundleRelease") upload_to_play_store( track: "internal", aab: "../build/app/outputs/bundle/release/app-release.aab" ) end
desc "Deploy to beta track" lane :beta do gradle(task: "clean bundleRelease") upload_to_play_store( track: "beta", aab: "../build/app/outputs/bundle/release/app-release.aab" ) end
desc "Deploy to production" lane :release do gradle(task: "clean bundleRelease") upload_to_play_store( track: "production", rollout: "0.1", # 10% staged rollout aab: "../build/app/outputs/bundle/release/app-release.aab" ) endendPlay Store Metadata
Located in android/fastlane/metadata/android/:
metadata/android/├── en-US/│ ├── title.txt│ ├── short_description.txt│ ├── full_description.txt│ └── changelogs/│ └── default.txt└── images/ ├── phoneScreenshots/ └── featureGraphic.pngStaged Rollout
Increase rollout percentage:
fastlane android promote rollout:0.5 # 50%fastlane android promote rollout:1.0 # 100%Common Issues
Version Code Conflicts
Version code must always increase. Check current:
fastlane run google_play_track_version_codes track:productionAAB vs APK
Play Store requires AAB (Android App Bundle). Ensure you’re building:
flutter build appbundle --release