> ## Documentation Index
> Fetch the complete documentation index at: https://bilt.me/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Publish to Google Play

> Step-by-step guide to publishing your Bilt app on the Google Play Store

This guide walks you through preparing an Android release for Google Play with Bilt: Play Console setup, service-account access, Android signing, your first app bundle, and repeat builds.

Open **Settings → Publish** in your project, then choose **Quickstart → Play Store** to follow along.

## Prerequisites

* A working Bilt app you're ready to publish on Android
* A Google Play developer account in [Play Console](https://play.google.com/console) (\$25 one-time registration fee; no annual renewal)
* Access to Google Cloud so you can create a service account and enable the Google Play Android Developer API
* Store listing and policy details for your app: privacy policy, data safety answers, target audience, content rating, and pricing or countries

## Step 1: Create or open your Play Console account

If you do not have Play Console access yet:

1. Go to [Play Console](https://play.google.com/console)
2. Create or join a Google Play developer account — a one-time **\$25 USD** registration fee applies (no recurring annual fee for the account itself)
3. Pay with an international credit or debit card (Visa, MasterCard, or American Express)
4. Complete Google's account, identity, and organization checks before you try to publish

## Step 2: Create the app in Play Console

Create the Play Console app first, then use the same Android package name in Bilt.

<Steps>
  <Step title="Create the Play app">
    1. Open [Play Console](https://play.google.com/console)
    2. Click **Create app**
    3. Enter the app name, default language, app or game type, and free or paid choice
    4. Answer the declarations Google shows, then create the app
  </Step>

  <Step title="Finish the required Play setup">
    On the app dashboard, complete the required setup tasks Google shows for your app. This usually includes app access or sign-in instructions, ads, content rating, target audience, privacy policy, Data safety, store listing, and pricing or countries.
  </Step>

  <Step title="Choose your package name">
    Pick the Android package name Bilt should build for this Play app, such as `com.yourcompany.appname`. Use a stable, lowercase package name because Google Play treats it as the app's permanent identifier after upload.
  </Step>
</Steps>

## Step 3: Connect Google Play to Bilt

Open **Settings → Publish → Play Store**. The Play Store setup tab has three sections: **Package name**, **Service key file**, and **Android upload key**.

<Steps>
  <Step title="Add the package name">
    In **Package name**, click **Configure package name**, enter your Android package name, then click **Save**.
  </Step>

  <Step title="Create a Google service account">
    In [Google Cloud Console](https://console.cloud.google.com/), open **IAM & Admin → Service Accounts**, click **Create service account**, fill in the service account name, and use **Service Account User** in the permissions step.
  </Step>

  <Step title="Download the JSON key">
    Open the service account, choose **Keys**, then click **Add key → Create new key**. Choose **JSON** and save the downloaded file securely.

    <Warning>
      The JSON key can publish to Google Play when granted access. Treat it like a password.
    </Warning>
  </Step>

  <Step title="Enable the Google Play Android Developer API">
    In the same Google Cloud project, open the [Google Play Android Developer API](https://console.cloud.google.com/marketplace/product/google/androidpublisher.googleapis.com) page and click **Enable**.
  </Step>

  <Step title="Invite the service account to Play Console">
    In [Play Console](https://play.google.com/console), open **Users and permissions**, click **Invite new users**, and invite the service account email from Google Cloud. Under **App permissions**, add your app and grant **Admin (all permissions)**, then click **Apply** and **Invite user**.
  </Step>

  <Step title="Upload the service key file in Bilt">
    Back in **Settings → Publish → Play Store**, click **Configure service key file**, upload the JSON file, then click **Save service key file**.
  </Step>
</Steps>

## Step 4: Set up the Android upload key

Open **Settings → Publish → Play Store → Android upload key**.

* **Generate** — Bilt creates and saves an Android upload key for this project (recommended for new Play apps)
* **Upload your own** — Upload an existing `.jks`, `.keystore`, `.p12`, or `.pfx` upload key and enter the file password, key name, and key password

After a key is saved, Bilt signs Android builds with it automatically. Click **Download upload key** and store the backup securely. Google Play requires future releases to use the same upload key unless you reset it through Play Console.

## Step 5: Build and upload your first app bundle

Open **Deploy & Share → Release on App Store** from the top-right project button, then switch to the **Build** subtab.

1. Select **Play Store** as the build target
2. Click **Start Play Store build**
3. Watch progress under **Recent builds**
4. When the build finishes, open the build artifact menu and download the **Play Store package**

For the first Play release, Google may require a manual upload before automatic publishing works:

1. Open [Play Console](https://play.google.com/console/u/0/developers) and select your app
2. In the left dashboard, go to **Test and release → Internal testing**
3. Click **Create new release** in the top right
4. Upload the downloaded `app-release.aab` file
5. Choose a release name
6. Click **Next** in the bottom right, fix any errors, then click **Save**

<Tip>
  Bilt builds Android App Bundles (`.aab`) for Google Play. Google Play uses app bundles to generate optimized APKs for each device.
</Tip>

## Step 6: Let Bilt handle future updates

After the first upload and Play Console setup are accepted, use **Settings → Publish → Build** for repeat Android releases:

1. Select **Play Store**
2. Click **Start Play Store build**
3. If Google Play publishing is ready, Bilt sends the package to the **internal** testing track automatically
4. If Google Play publishing is not ready, Bilt still creates a downloadable **Play Store package** so you can upload it manually

The Build tab also includes a **Google Play Console** button for jumping back to Play Console.

## Step 7: Move from testing to production

When you are ready to go live:

1. Complete your store listing, App content declarations, prices, countries, and release notes in Play Console
2. Test the app through internal testing, then closed or open testing if needed
3. Create or promote a production release
4. Review the release, resolve any errors, and submit it for Google review
5. Once approved, your app is live on Google Play

## Play Store tabs in Bilt

| Tab                         | What to configure                                                                          |
| --------------------------- | ------------------------------------------------------------------------------------------ |
| **Quickstart → Play Store** | Guided checklist for Play Console, Bilt setup, first package, and updates                  |
| **Play Store**              | Package name, service key file, and Android upload key                                     |
| **Build**                   | Select App Store, Play Store, or Both; start builds; download artifacts; open Play Console |

## Common issues

<AccordionGroup>
  <Accordion title="Google Play API needs to be enabled">
    Enable the [Google Play Android Developer API](https://console.cloud.google.com/marketplace/product/google/androidpublisher.googleapis.com) in the same Google Cloud project that owns your service account, then start another build.
  </Accordion>

  <Accordion title="Service key file is invalid">
    Upload the JSON key file downloaded from Google Cloud. Bilt expects a Google service account JSON file, not a Play Console export or a copied email address.
  </Accordion>

  <Accordion title="Play Store publishing is skipped">
    Bilt can still build the Android package, but Google Play did not allow automatic publishing. Check that the service account has app-level release access in Play Console and that your first manual app bundle upload or required Play setup is complete.
  </Accordion>

  <Accordion title="Package name mismatch">
    The package name in Bilt must match the package Google Play expects for this app. Use a value like `com.company.appname`, keep it lowercase, and do not change it after the first Play upload.
  </Accordion>

  <Accordion title="Upload key mismatch">
    Future releases must be signed with the same upload key used for the app in Google Play. If Bilt generated your key, keep the **Download upload key** backup. If you used your own key, upload that same key in Bilt.
  </Accordion>

  <Accordion title="Build fails">
    Check the build logs in the **Build** tab. Common causes include a missing package name, missing upload key, invalid service-account access, or an Android build error in the app.
  </Accordion>
</AccordionGroup>

## Further reading

* [Create and set up your app](https://support.google.com/googleplay/android-developer/answer/9859152) — Google Play Console app setup
* [Google Play Developer API getting started](https://developers.google.com/android-publisher/getting_started) — Service accounts and API access
* [Set up internal testing](https://support.google.com/googleplay/android-developer/answer/9845334) — Internal, closed, and open testing tracks
* [Prepare and roll out a release](https://support.google.com/googleplay/android-developer/answer/9859348) — Release creation and rollout
* [Use Play App Signing](https://support.google.com/googleplay/android-developer/answer/9842756) — Upload keys and Play App Signing
* [Publish your app](/docs/features/publish-your-app) — Feature overview
