Skip to Content
DocsDeploymentGoogle Play Store Setup

Google Play Store Deployment

This guide walks you through deploying your Android app to Google Play Store using WebF.

Prerequisites

Before you begin, make sure you have:

  • ✅ A Google Play Console developer account ($25 one-time registration fee)
  • ✅ Your app’s package name (e.g., com.yourcompany.appname)
  • ✅ An Android keystore file for signing your app
  • ✅ A Google Play service account for automated uploads

Step 1: Create Package Name

Your package name is a unique identifier for your Android app. It cannot be changed after your first upload to Google Play.

Guidelines for Package Name

  • Use reverse domain notation: com.yourcompany.appname
  • Only lowercase letters, numbers, and underscores
  • Must be unique across all apps on Google Play
  • Cannot contain Java/Android reserved keywords

Example

com.example.mywebfapp

⚠️ Important: Choose carefully! The package name cannot be changed after you upload your app to Google Play.


Step 2: Generate Android Keystore

A keystore file is required to digitally sign your Android app. All Android apps must be signed before they can be installed.

Generate Keystore Using keytool

keytool -genkey -v -keystore my-release-key.jks \ -keyalg RSA -keysize 2048 -validity 10000 \ -alias upload

Interactive Prompts

You’ll be asked to provide:

  1. Keystore password - Used to protect the keystore file
  2. Key password - Used to protect the specific key (can be same as keystore password)
  3. Distinguished name - Your name, organization, city, state, country
  4. Key alias - Name for this key (default: upload)

Example Session

Enter keystore password: ******** Re-enter new password: ******** What is your first and last name? [Unknown]: John Doe What is the name of your organizational unit? [Unknown]: Development What is the name of your organization? [Unknown]: My Company What is the name of your City or Locality? [Unknown]: San Francisco What is the name of your State or Province? [Unknown]: CA What is the two-letter country code for this unit? [Unknown]: US Is CN=John Doe, OU=Development, O=My Company, L=San Francisco, ST=CA, C=US correct? [no]: yes Generating 2,048 bit RSA key pair and self-signed certificate...

What You’ll Get

  • my-release-key.jks - Your keystore file
  • Keystore password - Password you entered
  • Key alias - Usually “upload”
  • Key password - Password for the key

🔐 Critical: Store your keystore file and passwords securely! If you lose them, you won’t be able to update your app on Google Play.

Security Best Practices

  • ✅ Store keystore in a secure location (not in version control)
  • ✅ Use a strong password (at least 12 characters)
  • ✅ Keep backup copies in multiple secure locations
  • ✅ Never share your keystore file publicly
  • ✅ Consider using a password manager for credentials

Step 3: Create Google Play Service Account

A service account allows automated uploads to Google Play Console without manual intervention.

3.1 Access Google Play Console

  1. Go to Google Play Console
  2. Select your app (or create a new one if this is your first time)
  3. Navigate to Setup → API access

3.2 Create Service Account

  1. Click “Create new service account”
  2. Follow the link to Google Cloud Console (opens in new tab)
  3. In Google Cloud Console, click ”+ CREATE SERVICE ACCOUNT”
  4. Fill in the details:
    • Name: webf-deployment (or your preferred name)
    • ID: Auto-generated
    • Description: “Service account for automated app deployment”
  5. Click “Create and Continue”
  6. Skip the optional permission steps (click “Continue” → “Done”)

3.3 Generate JSON Key

  1. In the service accounts list, find the account you just created
  2. Click the email address to open details
  3. Go to the “Keys” tab
  4. Click “Add Key” → “Create new key”
  5. Select “JSON” format
  6. Click “Create”
  7. The JSON file will download automatically - save this file securely

3.4 Grant Permissions in Google Play Console

  1. Return to Google Play Console API access page
  2. You should see your new service account in the list
  3. Click “Grant Access” next to the service account
  4. Select the following permissions:
    • Release to production, exclude devices, and use Play App Signing
    • View app information and download bulk reports (recommended)
    • Manage Production releases
    • Manage Testing track releases
  5. Click “Invite user”
  6. Click “Send invitation”

💡 Note: Your app must already exist in Google Play Console before you can use the API. If this is a new app, create it manually first through “Create app” in the console.


Step 4: Configure in WebF Platform

Now that you have all the required files and credentials, configure them in WebF:

4.1 Navigate to Project Settings

  1. Log in to your WebF account
  2. Go to your project
  3. Click on the “Publish Config” tab
  4. Select the “Android” tab

4.2 Upload Configuration

Fill in the following fields:

FieldValueExample
Package NameYour app’s package namecom.example.mywebfapp
Keystore FileUpload your .jks or .keystore filemy-release-key.jks
Keystore PasswordPassword for the keystoreMySecurePass123
Key AliasAlias used when generating keystoreupload
Key PasswordPassword for the keyMySecurePass123
Service Account JSONUpload the JSON file from Step 3service-account.json

4.3 Save Configuration

Click “Save Android Configuration” to save your settings.


Step 5: Create Your First Build

5.1 Navigate to Builds Tab

  1. In your project, click the “Builds” tab
  2. Click “New Build” button

5.2 Configure Build

  1. Select Build Type:

    • App - For end-user apps
    • SDK - For libraries (if applicable)
    • Both - Build both versions
  2. Select Platforms:

    • ✅ Check Android
  3. Configure Android Output Types:

    • APK - For direct download and testing
    • AAB (App Bundle) - Required for Google Play Store
      • Select distribution method: Google Play
      • Choose track: internal, alpha, beta, or production
  4. Select WebF Version (use latest stable version)

  5. Add any required Plugins

5.3 Start Build

Click “Create Build” to start the build process. You can monitor the progress in the Builds tab.


Step 6: Create App in Google Play Console

⚠️ Important - First Time Setup: Before WebF can automatically upload your app, you must first create the app manually in Google Play Console.

6.1 Create New App

  1. Go to Google Play Console
  2. Click “Create app”
  3. Fill in the required information:
    • App name: Your app’s name (can be changed later)
    • Default language: Select your language
    • App or game: Select “App” or “Game”
    • Free or paid: Select free or paid
  4. Accept the declarations
  5. Click “Create app”

6.2 Complete Store Listing (Optional for first upload)

You can complete the full store listing later, but for the first upload you need at least:

  • App name
  • Short description
  • Full description
  • App icon (512x512 PNG, cannot be transparent)
  • Feature graphic (1024x500 PNG)
  • At least 2 screenshots

💡 Tip: You can upload your first build to Internal Testing track without completing the full store listing.


Step 7: Monitor Build Progress

💡 Build Number Auto-Increment: WebF automatically increments the build number (versionCode) with each new build, so you don’t need to manage this manually.

Build Statuses

  • 🔵 RUNNING - Build is in progress
  • SUCCESS - Build completed successfully
  • ⚠️ PARTIAL - Some targets succeeded, others failed
  • FAILED - Build failed completely

View Build Details

  1. Click the “eye” icon next to a build to view details
  2. Check the Artifacts tab for downloadable files
  3. Review the Logs tab if there are errors

Step 8: Download or Publish

📝 Note: WebF uses Fastlane to automatically upload AAB files to Google Play when you select “Google Play” distribution. The upload happens in the background after the build completes.

For APK (Direct Download)

  1. Open the build details
  2. Go to Artifacts tab
  3. Click Download next to the APK file
  4. Install on your Android device for testing

For AAB (Google Play)

If you configured AAB with Google Play distribution:

  1. The build system automatically uploads to your selected track
  2. Go to Google Play Console
  3. Navigate to Release → Testing (or Production)
  4. You should see your new release
  5. Complete the release process:
    • Add release notes
    • Review and confirm
    • Click “Start rollout”

Troubleshooting

Build Fails

Check the build logs for specific error messages:

Common issues:

  • ❌ Invalid keystore password
  • ❌ Incorrect key alias
  • ❌ Package name mismatch
  • ❌ Missing required plugin

Solution: Review your configuration and ensure all credentials are correct.

Upload to Google Play Fails

Possible causes:

  • ❌ Service account lacks permissions
  • ❌ App not created in Google Play Console
  • ❌ Version code conflict (version already exists)

Solution:

  1. Verify service account has “Release” permissions
  2. Ensure your app exists in Google Play Console
  3. Check that version codes are incrementing

App Signing Issues

Error: “App not signed properly”

Solution:

  1. Verify keystore file is the same one used for previous uploads
  2. Check keystore and key passwords are correct
  3. Ensure key alias matches

Best Practices

Version Management

  • ✅ Always increment versionCode for each release
  • ✅ Use semantic versioning for versionName (e.g., 1.0.0, 1.0.1)
  • ✅ Keep track of version codes for each release

Testing Strategy

  1. Internal Testing - Test with your team (up to 100 testers)
  2. Closed Testing - Test with specific users (alpha/beta)
  3. Open Testing - Public beta testing
  4. Production - Full release to all users

Security

  • 🔐 Never commit keystore files to version control
  • 🔐 Store passwords in secure password manager
  • 🔐 Limit service account permissions to minimum required
  • 🔐 Regularly rotate service account keys
  • 🔐 Enable two-factor authentication on Google account

Additional Resources


Next Steps

After your app is published:

  • 📊 Monitor crash reports and ANRs in Play Console
  • 🔔 Set up alerts for new reviews and ratings
  • 📈 Track performance metrics and user acquisition
  • 🚀 Plan your update and feature release schedule
Last updated on: