Overview
This guide covers deploying Quest Hunter to Android using Expo Application Services (EAS). You’ll learn how to create builds, submit to Google Play Store, and distribute APK files.Prerequisites
- Google Play Console account ($25 one-time fee)
- EAS CLI installed and configured
- Project environment variables configured
- Payment profile set up in Google Play Console
Quest Hunter’s Android package name is
com.levinbaenninger.questhunter. You’ll need to use this package name in Google Play Console or change it in app.json.Android Configuration
App Configuration
Quest Hunter is configured with the following Android settings inapp.json:
Key Features
- Location Permissions: Required for map and quest features
- Adaptive Icon: Supports Android 8.0+ adaptive icons with foreground, background, and monochrome variants
- Google Maps Integration: Configured with API key
- Edge-to-Edge Display: Modern Android UI with edge-to-edge content
- New Architecture: Enabled for improved performance
Building for Android
Development Build
For local development and testing:Build development APK
Create a development build with dev client:This creates an APK with:
- Development client enabled
- Internal distribution
- Debugging capabilities
Install on device
After the build completes, install on your Android device:Or scan the QR code from EAS build page to download directly on device.
Preview Build
For internal testing before production:- Internal team testing
- QA verification
- Stakeholder demos
Production Build (AAB for Play Store)
Configure credentials
Set up Android keystore with EAS:Select Android and let EAS manage your keystore, or upload your own.
EAS can automatically generate and manage your Android keystore. This is recommended for most projects.
Create production build
Build Android App Bundle (AAB) for Google Play:The production profile has
autoIncrement: true, automatically incrementing the version code.Submitting to Google Play Store
First-Time Setup
Create app in Google Play Console
- Go to Google Play Console
- Click “Create app”
- Enter app details:
- App name: Quest Hunter
- Default language: English (United States)
- App/Game: App or Game (your choice)
- Free/Paid: Free or Paid
- Accept declarations
Configure app details
Complete all required sections in Google Play Console:
- App content: Privacy policy, ads declaration, target audience
- Store presence: App details, graphics, categorization
- Countries/regions: Select where to distribute
- Content rating: Complete questionnaire
Service Account Setup
For automated submissions, configure a Google Service Account:Create service account
- Go to Google Cloud Console
- Create a new project or select existing
- Enable Google Play Android Developer API
- Create service account with Play Console access
Release Tracks
Internal Testing
Quick distribution to up to 100 testers:- No review required
- Instant availability
- Ideal for team testing
Closed Testing (Alpha/Beta)
For larger test groups:- Requires review (usually faster than production)
- Can have multiple tester lists
- Collect feedback before production
Production Release
Full public release:APK Distribution (Outside Play Store)
For direct APK distribution:Updating the App
Version Management
Update version inapp.json:
The Android version code is automatically incremented by EAS when using the production profile. You only need to update the version name for new releases.
Release Update
Over-the-Air Updates (OTA)
For JavaScript and asset changes without rebuilding:Google Play Store Assets
Required Assets
- App Icon
- Screenshots
- Feature Graphic
Adaptive Icon Components
- Foreground:
./assets/images/android-icon-foreground.png - Background:
./assets/images/android-icon-background.png - Monochrome:
./assets/images/android-icon-monochrome.png
- 512x512 pixels
- PNG format (32-bit)
- Foreground should fit within safe zone (central 108x108 dp)
Store Listing Content
Prepare the following:- Short description: Up to 80 characters
- Full description: Up to 4000 characters
- App category: Choose appropriate category
- Content rating: Complete IARC questionnaire
- Privacy policy URL: Required for apps that access location
Permissions and Privacy
Location Permissions
Quest Hunter requires location permissions. In Google Play Console:- Navigate to App content > Privacy policy
- Provide privacy policy URL
- In Data safety section, declare:
- Location data collection (precise and approximate)
- Purpose: App functionality (maps, quests)
- Data is not shared with third parties (if applicable)
Google Maps API Key
Secure your API key:- Go to Google Cloud Console
- Navigate to APIs & Services > Credentials
- Create or edit your API key
- Add application restrictions:
- Android apps
- Package name:
com.levinbaenninger.questhunter - SHA-1 certificate fingerprint (from your keystore)
Troubleshooting
Build Failures
Check build logs:- Missing environment variables
- Invalid package name
- Keystore issues
- Gradle build failures
Submission Errors
- Duplicate Version
- Missing Permissions Declaration
- API Key Errors
Each submission requires a unique version code. The production profile auto-increments, but if you see this error:
Google Play Rejection
Common rejection reasons:- Incomplete Data Safety: Missing location permission declarations
- Privacy Policy: Missing or invalid privacy policy URL
- Misleading Content: Store listing doesn’t match app functionality
- Crashes: App crashes during review
- Permissions: Using permissions without clear purpose
Device Compatibility
Check device compatibility in Google Play Console:- Minimum SDK version is set appropriately
- Required hardware features are declared
- Screen sizes are supported
Staged Rollouts
Gradually release updates:- In Google Play Console, select your release
- Choose “Staged rollout”
- Set percentage (e.g., 20%)
- Monitor crash rates and reviews
- Increase rollout percentage or halt if issues arise
Next Steps
iOS Deployment
Deploy to App Store and TestFlight
Web Deployment
Deploy web version with static export