This mobile app template uses automated deployment through GitHub Actions and Expo Application Services (EAS) to deploy to both Android and iOS app stores.
The deployment process is fully automated and triggered when code is pushed to the main branch. The workflow:
- Builds both Android and iOS versions of the app
- Tests the code and runs quality checks
- Deploys automatically to both app stores if builds succeed
- Builds using EAS Build service
- Submits to Google Play Console
- Initially deployed to "internal" track for testing
- Can be promoted to production through Google Play Console
- Builds using EAS Build service
- Submits to App Store Connect
- Goes through Apple's review process
- Released automatically after approval (or manually if configured)
Before automated deployment works, you need to:
- Set up GitHub Secrets - See GitHub Secrets Configuration for detailed instructions
- Configure app store accounts:
- Google Play Console developer account
- Apple Developer Program membership
- App Store Connect access
- Create your apps in both stores (initial setup)
- Configure EAS - The
eas.jsonfile is already configured
When you push to the main branch:
git push origin mainThe GitHub Actions workflow automatically:
- Runs PR validation checks
- Builds Android and iOS versions
- Submits to both app stores
- Notifies you of success/failure
You can also deploy manually using EAS CLI:
# Build and submit Android
eas build --platform android --auto-submit
# Build and submit iOS
eas build --platform ios --auto-submiteas.json- EAS Build and Submit configuration.github/workflows/build-main.yml- Main deployment workflow.github/workflows/pr-validation.yml- PR validation workflow.github/workflows/build-mobile.yml- Reusable build workflow
The deployment uses a production environment in GitHub Actions, which allows you to:
- Add manual approval requirements
- Restrict deployments to specific branches
- Add additional security checks
To configure: Go to your repository Settings > Environments > production
- View workflow runs in the "Actions" tab of your repository
- Check logs for build and deployment status
- Receive notifications on failures
- Google Play Console: Monitor Android app status and releases
- App Store Connect: Track iOS app review and release status
- Authentication failures: Check that all GitHub secrets are correctly set
- Build failures: Review the GitHub Actions logs for specific errors
- Store submission failures: Verify app store configurations and credentials
- Check the GitHub Actions logs for detailed error messages
- Review the GitHub Secrets Configuration guide
- Consult Expo EAS documentation for build-specific issues
- All sensitive credentials are stored as GitHub secrets
- The production environment provides additional security layers
- Secrets are never exposed in logs or code
- Access is controlled through GitHub repository permissions
- Follow the GitHub Secrets Configuration guide to set up your credentials
- Push code to
mainbranch to trigger your first automated deployment - Monitor the deployment in GitHub Actions and app store consoles
- Configure environment protection rules as needed for your team