# Connect Google Play

> This page is about FlutterFlow (the app builder you use by describing your app), not FlutterFlow Studio.

URL: https://docs.flutterflow.io/ffx/connect-google-play

Give FlutterFlow a Google Play service-account key, with Google's help or by hand, and grant that service account access in Play Console.

Connect your Google Play account so FlutterFlow can upload your app and submit it for review. Connecting gives FlutterFlow a key for a service account in your Google Cloud project and grants that service account access to your Play Console account.

You need an approved Google Play developer account. See [Developer accounts](https://docs.flutterflow.io/ffx/developer-accounts).

## Open the connect step {#open-the-connect-step}

1. In your app, open [**Releases**](https://docs.flutterflow.io/ffx/glossary#sharing-and-releases), and then open **Google Play**.
2. Open the **Connect FlutterFlow to Google Play** step.

If you've already saved a Google Play account, the step lists it. Follow [Choose a saved account](#choose-a-saved-account). Otherwise, save a key with Google's help or by hand under **1. Save a Google key**, and then grant access.

## Save a key with Google {#set-up-with-google}

To let FlutterFlow create the key for you, follow these steps:

1. Under **1. Save a Google key**, in **Connection name (optional)**, enter a name that you'll recognize when you choose this account for another app.
2. Select **Set up with Google**.
3. Sign in with the Google account that you use for Play Console.

FlutterFlow creates or reuses a Google Cloud project named "FlutterFlow Play uploads", enables the Play API, and creates a service account and a key. Its temporary sign-in access to your Google account ends after setup.

After FlutterFlow saves the key, it shows **Google key saved**. Next, [grant the service account access](#grant-access).

If Google won't create the project or the key, select an existing project in **Choose a Google Cloud project**, and then select **Use selected project**.

## Save a key by hand {#set-up-manually}

To make the key yourself in Google Cloud, select **Set up manually** under **1. Save a Google key**. FlutterFlow lists the steps in Google Cloud's order, with a link to Google Cloud for each step that happens there:

1. **Create a Google Cloud project.** Use the Google account that you use for Play Console. You can select an existing project instead. To use FlutterFlow's suggested name, select **Copy** next to **Project name**.
2. **Enable the Google Play Android Developer API.** Select your Google Cloud project, and then select **Enable**.
3. **Create a service account.** To use FlutterFlow's suggested name, select **Copy** next to **Service account name**, and then paste it into Google Cloud. Select **Create and continue**. Skip Google Cloud roles, and then select **Continue › Done**.
4. **Download the service-account key.** Open the service account, and then select **Keys › Add key › Create new key › JSON**. Keep the file private because the key grants access to your apps. If your organization disables key creation, ask your Google Cloud administrator to allow service-account keys.
5. **Upload the key.** Select **Choose file**, and then choose the `.json` file. Optionally, enter a name in **Connection name (optional)**. Then select **Save key**.

Only FlutterFlow's connection to Google Play uses the key. The agent never reads it.

## Grant Play Console access {#grant-access}

Google Play accepts uploads from the service account only after you invite it in Play Console. FlutterFlow can't send this invitation for you. The permissions apply to your whole Play Console account, so you grant them one time for all your apps.

After you save a key, follow these steps under **2. Grant Play Console access**:

1. Next to **Email address**, select **Copy**.
2. Select **Open Users and permissions**. In Play Console, select **Invite new users**, and then paste the address into the email address field.
3. Select these **Account permissions**:
   - **Release to production, exclude devices, and use Play App Signing**
   - **Release apps to testing tracks**
   - **Manage testing tracks and edit tester lists**
   - **Manage store presence**
4. Select **Invite user**. The permissions can take some time to apply.
5. In FlutterFlow, select **Continue to app setup**.

<Mock name="grant-play-access" alt="The 2. Grant Play Console access part of Connect FlutterFlow to Google Play: an Email address with Copy, Open Users and permissions, the four Account permissions to select, Select Invite user, and Continue to app setup." />

## Key saved or Connected {#key-saved-or-connected}

After setup, the **Google Play** drawer shows one of these statuses for your Google Play account:

| Status | What it means |
|---|---|
| **Key saved** | FlutterFlow has your key, but it hasn't reached your app in Play Console with it yet. |
| **Connected** | FlutterFlow found your app in Google Play with this key. |
| **Needs attention** | Play Console refused FlutterFlow's last request with this key. |

When FlutterFlow can reach your app, the **2. Grant Play Console access** part says **FlutterFlow found your app in Google Play.**

## Choose a saved account {#choose-a-saved-account}

When you've already saved a Google Play account and your app doesn't use one yet, the connect step lists your saved Google Play accounts, starting with the one that most of your apps use.

1. Select the account that your app is on.
2. Select **Use** followed by the account's name.

To connect a different account instead, select **Connect another account**.

To change the account that your app uses, select **Change** next to the account's name.

## When the agent asks {#store-key-card}

If the agent needs a Google Play key while it works in a [thread](https://docs.flutterflow.io/ffx/glossary#building-with-the-agent), it shows a card that does the same thing as the connect step in **Releases**:

- If your app already uses a Google Play account, the card names it. Select **Continue**, or select **Change** to choose another account.
- If you have saved Google Play accounts, select one, and then select **Use** followed by its name.
- Otherwise, the card offers **Set up with Google**. To upload a `.json` key that you made yourself, select **Make it by hand instead**, select **Choose file**, add the `.json` key, and then select **Connect**.

The card doesn't include the Play Console invitation. After you connect from a thread, [grant the service account access](#grant-access) from the connect step in **Releases**.

## Troubleshooting {#if-something-goes-wrong}

For a key that Play Console refuses or other release problems, see [Troubleshoot phone builds and store releases](https://docs.flutterflow.io/ffx/troubleshoot-releases).
