⚠️ Setup Android Credentials First
Required: You must save your Android credentials before building release apps.
Dieser Inhalt ist in Ihrer Sprache noch nicht verfügbar.
Build and submit Android apps to the Google Play Store using Capgo’s secure cloud infrastructure.
⚠️ Setup Android Credentials First
Required: You must save your Android credentials before building release apps.
Android builds run in secure Cloudflare sandboxes:
Before building for Android, you need:
npx cap open androidFor release builds, you need a signing keystore:
| Build Type | Keystore Required | Purpose |
|---|---|---|
| Debug | No | Testing only, auto-generated |
| Release | Yes | Play Store submission |
If you don’t have a keystore yet, create one:
keytool -genkey -v \ -keystore my-release-key.keystore \ -alias my-key-alias \ -keyalg RSA \ -keysize 2048 \ -validity 10000Answer the prompts:
For release builds, set these credentials:
# Android Signing (Required for release)ANDROID_KEYSTORE_FILE="<base64-encoded-keystore>"KEYSTORE_KEY_ALIAS="my-key-alias"KEYSTORE_KEY_PASSWORD="<key-password>"KEYSTORE_STORE_PASSWORD="<store-password>"
# Play Store Publishing (Optional, for auto-submission)PLAY_CONFIG_JSON="<base64-encoded-service-account-json>"Keystore File:
base64 -i my-release-key.keystore | pbcopyPlay Store Service Account JSON:
base64 -i play-store-service-account.json | pbcopyThe base64 string is now in your clipboard.
To enable automatic Play Store uploads:
Perfect for testing without signing:
npx @capgo/cli@latest build com.example.app \ --platform android \ --build-mode debugThis creates a debug APK that can be installed on any device for testing.
For Play Store submission:
npx @capgo/cli@latest build com.example.app \ --platform android \ --build-mode releaseRequires signing credentials to be configured as environment variables.
name: Build Android App
on: push: branches: [main]
jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4
- name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '20'
- name: Install dependencies run: npm ci
- name: Build web assets run: npm run build
- name: Sync Capacitor run: npx cap sync android
- name: Build Android app env: CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }} ANDROID_KEYSTORE_FILE: ${{ secrets.ANDROID_KEYSTORE }} KEYSTORE_KEY_ALIAS: ${{ secrets.KEYSTORE_ALIAS }} KEYSTORE_KEY_PASSWORD: ${{ secrets.KEYSTORE_KEY_PASSWORD }} KEYSTORE_STORE_PASSWORD: ${{ secrets.KEYSTORE_STORE_PASSWORD }} PLAY_CONFIG_JSON: ${{ secrets.PLAY_STORE_CONFIG }} run: | npx @capgo/cli@latest build ${{ secrets.APP_ID }} \ --platform android \ --build-mode releaseSandbox Initialization (~5 seconds)
Project Setup (~20 seconds)
Gradle Build (2-4 minutes)
Play Store Upload (30 seconds, if configured)
Cleanup (immediate)
Our Android build environment includes:
By default, Capgo builds create:
Typical Android build times:
| Build Type | Average Time |
|---|---|
| Debug | 2-3 minutes |
| Release (no ProGuard) | 3-4 minutes |
| Release (with ProGuard) | 4-6 minutes |
If your app has custom build variants (e.g., staging, production), use build-config:
npx @capgo/cli@latest build com.example.app \ --platform android \ --build-mode release \ --build-config '{"variant":"staging"}'This will build the stagingRelease variant.
For apps with flavor dimensions:
--build-config '{"flavor":"premium","variant":"production"}'This builds the premiumProductionRelease variant.
“Keystore password incorrect”
“Key alias not found”
keytool -list -keystore my-release-key.keystore“Gradle build failed”
./gradlew assembleReleasebuild.gradle“Play Store upload failed”
“Build timeout”
Watch for these key phases in the build logs:
→ Downloading dependencies...→ Running Gradle assembleRelease...→ Signing APK/AAB...→ Uploading to Play Store...✔ Build succeededIf a build fails, the specific Gradle error will be shown in the logs.
Always ensure your Android build works locally:
cd android./gradlew assembleRelease# or./gradlew bundleReleaseCapgo reads version from your capacitor.config.json:
{ "appId": "com.example.app", "appName": "My App", "version": "1.0.0", "build": "1"}Increment the build number for each release.
For release builds, ensure ProGuard rules are properly configured:
-keep class com.getcapacitor.** { *; }-keep @com.getcapacitor.annotation.CapacitorPlugin public class * { @com.getcapacitor.annotation.PluginMethod public <methods>;}Keep an eye on APK/AAB size to ensure it’s optimized:
The CLI shows final size:→ APK size: 12.4 MBIf your app is large (>50 MB), consider:
With PLAY_CONFIG_JSON configured, builds are automatically uploaded to Play Console’s internal testing track.
If you prefer manual submission: