# Set up Google Play

> Choose the correct Play developer account, complete identity and organization verification, and create your app record.

Canonical: https://www.rnblocks.dev/docs/publishing/accounts/google-play
Updated: 2026-10-01

Use your own Google Play developer account to publish an Android app. Complete developer-account verification and the initial app record in Play Console. RNBlocks can then connect your service account and review an upload of a finished Android App Bundle to an internal-testing draft.

Opening Play Console from RNBlocks does not establish a Google publishing connection or verify that your account is ready.

## Individual testers or Google Groups?

Section: https://www.rnblocks.dev/docs/publishing/accounts/google-play#tester-groups

An email list names individual tester accounts and is managed in Play Console. A Google Group is a membership list with its own group address, not a new Gmail account. It is optional: you can keep using individual tester emails in Play Console. Google’s publishing API can select existing groups for a testing track, but cannot manage individual email lists.

The group connection grants testing access to current and future group members. Keep the group private and check its membership before approving access. Creating a group, managing members and accepting an invitation are separate steps from publishing a build.

Share the opt-in link with your testers; adding an email to the list is not a TestFlight-style invitation. An active test release still needs an eligible tester to open that link with the listed Google account and install the app. Google may show a temporary package-name label for a new, unreviewed app. Internal testing does not make the app publicly available.

- [Google tester API limitations](https://developers.google.com/android-publisher/api-ref/rest/v3/edits.testers)
- [Set up internal testing](https://support.google.com/googleplay/android-developer/answer/9845334)

## What can the publishing agent do?

Section: https://www.rnblocks.dev/docs/publishing/accounts/google-play#agent-capabilities

The agent handles the supported steps after you connect the required accounts and approve the proposed actions. Some Google forms still need Play Console. Completing a form there does not mean RNBlocks can submit it through its tools.

| Google Play work | Current RNBlocks support |
| --- | --- |
| Build an APK or App Bundle | Prepare and start an approved Expo build, then check the result. |
| Upload an App Bundle | Upload a finished AAB to an internal-testing draft and check its version code. |
| Listing and contact details | Save the initial title, descriptions and public contact fields, then read them back. |
| Icon, screenshots and feature graphic | Upload reviewed assets into empty image sets and verify the saved images. |
| Data safety | Propose editable answers and send the approved declaration through Google’s API. Confirm the form in Play Console; upload success is not Google approval. |
| Build, upload and track status | Check the provider’s current status and retain the results in the publishing conversation. |
| Other App content questionnaires | Propose answers from your app and guide you to Play Console. RNBlocks does not currently submit these forms. |
| Initial countries and regions | Select them in Play Console → Production → Countries / regions. Google’s public API can read availability, but has no initial country-selection write method. |
| Start internal testing | Yes—verified through the agent with an existing uploaded App Bundle. Tester access and actual installation are separate checks. |
| Release publicly | Implementation is being qualified. Public release needs a separate final approval; internal testing does not authorize it. |
| Select testers | Individual email lists use Play Console. The agent’s new Google Group connection is being verified; it adds an existing group after review and preserves existing groups. |

> **Stay in control**
> Private sign-in, account agreements and payments stay with you. Public release requires its own approval. Saved accounts, builds and drafts can be reused as you complete the remaining steps.

- [Privacy and support](https://www.rnblocks.dev/docs/publishing/privacy-and-support)
- [Submission and review](https://www.rnblocks.dev/docs/publishing/submit-and-review)

## Choose where the app will be available

Section: https://www.rnblocks.dev/docs/publishing/accounts/google-play#countries

Before the first public release, open your app in Play Console → Test and release → Production → Countries / regions. Choose Add countries / regions, select the countries you want, use Edit countries / regions to add them, then save. This configures availability; it does not create or publish a release.

This initial selection is a Play Console step. Google’s public countryavailability API only reads the setting. RNBlocks can continue the supported build, upload and reviewed release actions after you complete it. An internal test does not prove production countries have been selected.

### Figure: Choose countries and regions

Production country selection in Play Console.

1. Choose the countries you want.
2. Use Edit countries / regions to add them, then save.
3. Country selection does not publish the app.



- [Google country availability API](https://developers.google.com/android-publisher/api-ref/rest/v3/edits.countryavailability)
- [Distribute releases to specific countries](https://support.google.com/googleplay/android-developer/answer/7550024)

## Create the developer account

Section: https://www.rnblocks.dev/docs/publishing/accounts/google-play#enroll

1. **Choose the owner and account type** — Sign in to Play Console with the Google account that will own the developer account. Choose Personal or Organization based on who is publishing.

2. **Complete registration** — Review Google’s agreement and pay the US$25 one-time registration fee yourself. Payment methods vary by location. RNBlocks credits do not cover this charge.

3. **Finish the verification tasks** — Follow the tasks shown on the Console home page. A registration receipt means the account was created; it does not mean identity, organization, website or contact verification is complete.

- [Get started with Play Console](https://support.google.com/googleplay/android-developer/answer/6112435?hl=en)
- [Verify your Google developer identity](https://support.google.com/googleplay/android-developer/answer/10841920?hl=en)

## Which name belongs in which field?

Section: https://www.rnblocks.dev/docs/publishing/accounts/google-play#names

For an organization, match the legal name and address across the payments profile, supporting records and D-U-N-S information. A brand and an authorized person are different identities.

| Information | Use |
| --- | --- |
| Developer name | Your public developer brand; it can differ from the legal name. |
| Organization legal name and address | The actual organization details in the linked payments profile and D-U-N-S record. |
| Representative’s identity | The authorized person’s legal name and identity documents. |
| Contact information for Google | Working email and phone details for account communications. |
| Public developer contact | The support contact details Google identifies as public for your account type. |

- [Google developer account information](https://support.google.com/googleplay/android-developer/answer/13628312?hl=en)

## Which email and phone number will be public?

Section: https://www.rnblocks.dev/docs/publishing/accounts/google-play#contacts

Use reachable organization-controlled contacts for a business. Google also displays verified legal identity information: organization name and address, or personal legal name and country; monetization and regional rules can require more. Review the public Developer profile before release.

| Detail | Purpose |
| --- | --- |
| Google Account sign-in | The owner’s login. Keep it separate from published support contacts. |
| Contact email / contact phone | Google uses these for account communication; they are not shown to users on Play. |
| Developer email / developer phone | Public developer-profile contacts. Organizations provide both; check the personal-account and regional requirements. |
| App support contact | Set per app in Store settings → Store listing contact details. It can differ from the developer-profile contact. |

- [Google developer contact requirements](https://support.google.com/googleplay/android-developer/answer/10840893?hl=en)
- [Google developer account information](https://support.google.com/googleplay/android-developer/answer/13628312?hl=en)
- [Manage a verified Play developer profile](https://support.google.com/googleplay/android-developer/answer/13634081?hl=en)

## Prepare the right verification documents

Section: https://www.rnblocks.dev/docs/publishing/accounts/google-play#documents

An organization can be asked for both business registration evidence and a representative’s government photo ID. The accepted documents depend on the payments-profile country.

For the United States, Google’s examples include IRS-issued documents such as CP575 or 147C and qualifying state incorporation documents. Use the current country-specific list rather than assuming a document accepted elsewhere will work.

Submit unmodified, clear documents directly to Google. If you entered a brand in a legal-name field, correct the relevant legal information during verification; do not create another account and pay again as a first fix.

- [Google verification documents by country](https://support.google.com/googleplay/android-developer/answer/15633622?co=GENIE.CountryCode%3DUS&hl=en)

## Check what remains after registration

Section: https://www.rnblocks.dev/docs/publishing/accounts/google-play#verification

If Create app is unavailable, read the incomplete Console tasks first. The relevant account owner should resolve the named issue or contact Google support; another app or account will not bypass it.

- Identity or organization documentation: submitted is different from approved.
- Website ownership: complete the verification requested for the organization’s real website.
- Phone and email: finish the required verification challenges.
- Personal-account device verification: complete the Android-device check when requested.
- Production access: some new personal accounts must complete a qualifying closed test before applying.

- [Verify your Google developer identity](https://support.google.com/googleplay/android-developer/answer/10841920?hl=en)
- [Get started with Play Console](https://support.google.com/googleplay/android-developer/answer/6112435?hl=en)
- [Testing requirements for new personal Play accounts](https://support.google.com/googleplay/android-developer/answer/14151465?hl=en)

## Verify the organization website

Section: https://www.rnblocks.dev/docs/publishing/accounts/google-play#website

1. **Use the organization’s real site** — Provide a website the organization controls. A social profile cannot be verified as this website. The site’s ownership check is separate from app support, privacy and deletion pages.

2. **Prepare Search Console ownership** — Register and verify the site in Google Search Console using an authorized owner. Then send the website verification request from Play Console’s Account details page.

3. **Finish the association** — The same Google Account can approve the association automatically. Otherwise the verified Search Console owner must approve the request. Check the Play Console result; creating the website alone does not complete verification.

- [Verify your organization website](https://support.google.com/googleplay/android-developer/answer/13205715)
- [Privacy and support pages](https://www.rnblocks.dev/docs/publishing/privacy-and-support)

## Why is phone verification still locked?

Section: https://www.rnblocks.dev/docs/publishing/accounts/google-play#phone

Google requires identity verification first, plus website verification for organizations or device verification for personal accounts. Submitted documents still awaiting approval do not satisfy that prerequisite.

When the task becomes available, enter the number in international format, choose text message or voice call, and use Verify phone number. Enter the six-digit code directly in Google. If text delivery fails, try the offered call option.

- [Verify your Google developer identity](https://support.google.com/googleplay/android-developer/answer/10841920?hl=en)

## Common verification questions

Section: https://www.rnblocks.dev/docs/publishing/accounts/google-play#verification-faq

| Question | Next step |
| --- | --- |
| Can the brand differ from the company or my ID? | Yes. For example, fictional Northstar Apps can be the developer brand, Northstar Labs LLC the legal organization, and Jordan Ellis its representative. Put each in the field asking for it. |
| I put my brand in the legal-name field. Start over? | First identify the field and correct the legal information during verification. Do not create another account or pay again just to fix a name. |
| Why do I see two document requests? | Read each heading. Organization evidence and a representative’s photo ID verify different things. A repeated company-document request does not by itself prove you need a different document. |
| Can I reuse the company’s D-U-N-S number? | Use the existing number for the same legal organization. Check its name/address and the linked payments profile; do not invent a new identity for another app. |
| The uploads finished. Am I verified? | Check approval and the remaining Home tasks. Website and phone tasks can remain after document submission. |
| The owner email opens an older account | Confirm the signed-in Google Account and account status. Resolve access or closure with Google support rather than treating a new email as a verification workaround. |

> **Existing payments profile**
> Google can offer an existing profile during registration. Select it only when its account type and legal owner match this developer account. Shared billing details do not themselves complete verification.

- [Google developer account information](https://support.google.com/googleplay/android-developer/answer/13628312?hl=en)
- [Verify your Google developer identity](https://support.google.com/googleplay/android-developer/answer/10841920?hl=en)
- [Google verification documents by country](https://support.google.com/googleplay/android-developer/answer/15633622?co=GENIE.CountryCode%3DUS&hl=en)

## Create your app record

Section: https://www.rnblocks.dev/docs/publishing/accounts/google-play#app-record

1. **Create the app** — In Play Console, choose Home → Create app. Set the app name, default language, app or game, and free or paid. If Google asks for the package name here, use the exact Android package saved in RNBlocks and check availability.

2. **Complete the declarations** — Read and accept the declarations that apply, including Play App Signing terms, then create the record. The dashboard lists the remaining setup tasks.

3. **Match the Android identity** — In RNBlocks Release settings, keep the Android package name for this app consistent with the build and any existing Play listing. An update must use the existing app identity.

- [Create an app in Play Console](https://support.google.com/googleplay/android-developer/answer/9859152?hl=en)
- [Release settings](https://www.rnblocks.dev/docs/publishing/release-settings)

## Can the agent create the app through an API?

Section: https://www.rnblocks.dev/docs/publishing/accounts/google-play#create-app-api

Google’s public Play publishing API does not currently expose ordinary app-record creation. Create the first record in Play Console. The agent can help prepare that browser form, while you review the declarations and agreements. This does not mean every later publishing step must be manual.

Once the record exists and API access is configured, supported tools can upload builds, update listing text and images, manage testing tracks and check release status. Fastlane supply also manages an existing Play app; it does not replace initial app creation.

Google’s Custom App Publishing API creates private enterprise apps that can never become public. Its separate appstoreappsreview creation endpoint is for third-party app stores. Neither is a shortcut for creating a public Google Play app.

- [Create an app in Play Console](https://support.google.com/googleplay/android-developer/answer/9859152?hl=en)
- [Google Play API methods](https://developers.google.com/android-publisher/api-ref/rest)
- [Fastlane supply](https://docs.fastlane.tools/actions/supply/)
- [Private app publishing limits](https://developers.google.com/android/work/play/custom-app-api/publish)
- [Third-party store app creation](https://developers.google.com/android-publisher/api-ref/rest/v3/appstoreappsreview/createappstorehostedapp)

## Already verified? Reuse your account

Section: https://www.rnblocks.dev/docs/publishing/accounts/google-play#verified-account

Company verification belongs to your developer account. Use that verified account for another app instead of registering again. Each app still needs its own app record, package name, listing and release setup.

A verified Google account, an app record and permission for a publishing service are three separate things. Signing in to Play Console does not automatically give RNBlocks API access.

- [Create an app in Play Console](https://support.google.com/googleplay/android-developer/answer/9859152?hl=en)
- [Google Play API access](https://developers.google.com/android-publisher/getting_started)

## Whose account am I connecting?

Section: https://www.rnblocks.dev/docs/publishing/accounts/google-play#connection-ownership

For the service-account route, each publisher creates or reuses their own connection. You do not need to repeat developer registration or create a new Cloud project for every app. Add access to another app only when you want that connection to manage it.

A project name such as ‘Publishing tools’ is just a label. Confirm the signed-in Google Account and the project’s owner before continuing; an RNBlocks-looking name does not establish ownership.

| Item | Who owns it and what it does |
| --- | --- |
| Google sign-in | Your Google Account, such as the work Gmail used to open Play Console. |
| Play developer account | Your business or personal publisher account. Your apps and releases stay here. |
| Google Cloud project | A project controlled by the publisher that holds the publishing connection. It is not another app listing or a requirement to move the app’s backend to Google. |
| Service account and key | A technical identity and private credential used by publishing software. It is not a new Gmail inbox or a second paid Play developer membership. |
| RNBlocks connection | Your saved authorization for RNBlocks to use that credential with the selected app. It does not transfer ownership to RNBlocks. |

- [Google Play API setup](https://developers.google.com/android-publisher/getting_started)

## Set up your publishing connection once

Section: https://www.rnblocks.dev/docs/publishing/accounts/google-play#connection-steps

There are two places to finish setup: Google gives publishing tools access, then RNBlocks saves your private connection. In Google Cloud, enabling the Google Play Android Developer API is a one-time switch for your chosen project. It lets publishing tools communicate with Play; it does not upload or release your app. Google asks you to accept its API terms as part of enabling it.

You can reuse this setup for later builds and other apps you own. For another app, grant the service account access to that app in Play Console, then select the saved connection in RNBlocks. You do not need a new Cloud project, key or paid developer membership each time.

1. **Choose your Google Cloud project** — Open Google Cloud Console using an account authorized by your publisher. Select an existing suitable project or create one. Enable the Google Play Android Developer API. A service account does not need the project Owner or Editor role to publish through Play.

2. **Create a publishing key** — Open IAM & Admin → Service Accounts. Create or select a dedicated publishing service account. Under Keys, create a JSON key and download it privately. Do not paste the key into chat, commit it with app code, or share your Google password.

3. **Choose its Play access** — Open Play Console → Users and permissions → Invite new users. Use the service account’s email, select the intended app under App permissions, and grant only the required capabilities. Testing tracks, store presence and editing draft apps have separate permissions. Google combines draft editing with deletion access, so review that grant carefully. Production release and account administration are broader permissions.

4. **Connect and check the app** — Where Google Play Connections is available in RNBlocks, upload the key in its private form and give the connection a recognizable name. Then select it for the app. Checking the key and confirming access to the app are separate checks; do not assume that saving a key means an upload succeeded.

> **Keep control**
> Keep the service account under your publisher’s control. Removing a saved RNBlocks connection does not automatically revoke a key stored with another provider. Manage the key and Play permissions in Google when you need to revoke them.

### Figure: Connect your Google Play publisher

Follow the Google Cloud and Play Console screens, then connect your key in RNBlocks.

1. **Your project** — In Google Cloud, select a project you control or create one. You can reuse it for other apps.

2. **Enable API** — Open Google Play Android Developer API and choose Enable. This is a one-time step for the project.

3. **Your key** — Under your service account’s Keys tab, choose Add key → Create new key → JSON.

4. **App access** — In Play Console → Users and permissions, invite the service account and select your app under App permissions.

5. **Connect** — In RNBlocks → Connections, upload the JSON file privately, then select Use for this app.

1. Use a project and service account controlled by your publisher.
2. Grant access to the intended app and actions in Play Console.
3. Connect privately in RNBlocks, then verify the selected app.



[Based on Expo’s Google Play setup guide](https://github.com/expo/fyi/blob/main/creating-google-service-account.md)

- [Google Cloud service accounts](https://console.cloud.google.com/iam-admin/serviceaccounts)
- [Expo service-account guide](https://github.com/expo/fyi/blob/main/creating-google-service-account.md)

## Already have a service account?

Section: https://www.rnblocks.dev/docs/publishing/accounts/google-play#existing-publishing-key

Reuse a suitable service account owned by your publisher. In Google Cloud, select its project, open IAM & Admin → Service Accounts, then choose the account. Use Keys → Add key → Create new key → JSON if you need a new private key. Confirm its app access in Play Console before connecting it.

Publishing credentials and push-notification credentials serve different purposes. Setting up a Play publishing key does not configure notifications. Keep these separate unless you intentionally grant the account both sets of permissions.

- [Expo’s illustrated service-account guide](https://github.com/expo/fyi/blob/main/creating-google-service-account.md)
- [Expo push-notification credentials](https://docs.expo.dev/push-notifications/fcm-credentials/)

## Why can an upload work but a listing save fail?

Section: https://www.rnblocks.dev/docs/publishing/accounts/google-play#draft-permissions

Google checks different permissions for uploads, store details and draft apps. For a new draft app, check both Manage store presence and Edit and delete draft apps. The latter also grants deletion of that draft; it does not grant production release access.

Open Play Console → Users and permissions → your publishing service account → App permissions → your app → Manage permissions. After an approved change, select Apply and Save changes. Keep access limited to the intended app.

A permission error alone does not tell you which access is missing. Check which step failed before changing permissions. Text accepted into a temporary Google edit is not saved to the listing until that edit is committed and checked.

### Figure: Choose app permissions for testing and store setup

Select permissions for the intended app in Google Play Console.

1. **View app** — Select View app information. Google also selects app quality information. Leave Admin unchecked.

2. **Draft access** — For initial draft setup, select Edit and delete draft apps. Google bundles these capabilities; review this access before granting it.

3. **Testing** — For test releases, select Release apps to testing tracks. Add Manage testing tracks and edit tester lists when managing testers. Leave production release unchecked for this setup.

4. **Store details** — Select Manage store presence to edit listing text and images. Draft access is a separate permission.

5. **Policy** — Manage policy declarations permits editing and submitting policy answers. Google may select it automatically with related permissions. Apply your choices, then save changes.

1. Use App permissions for the selected app.
2. Grant only the capabilities needed for your task.
3. Select Apply, then Save changes.



- [Google Play permissions](https://support.google.com/googleplay/android-developer/answer/9844686?hl=en)

## How automated Google Play access works

Section: https://www.rnblocks.dev/docs/publishing/accounts/google-play#api-access

A service account is a robot account for publishing software. It belongs to your Google Cloud project; RNBlocks connects to it with your permission. With this setup, create one or reuse a suitable existing account, then grant access only to the apps it should manage. A separate Cloud project or key for every app is not required. Never grant Cloud project Owner or Editor just to enable Play publishing.

Use the service account’s JSON key, not a generic Google Cloud API key. It serves a similar purpose to the Apple API key used for publishing, but Google’s creation and permission steps are different. EAS Submit’s Android route requires this service-account key; Google OAuth support does not automatically make an OAuth connection usable by EAS Submit.

Google supports a service account for server-to-server publishing. Enable the Google Play Developer API in a Google Cloud project, then grant the service account the required app permissions in Play Console → Users and permissions. You no longer need to link the developer account to the Cloud project.

Keep service account keys out of chat and app source. Use a provider’s private credential form, and grant only the access needed for the intended app and actions. RNBlocks can review an existing AAB upload and initial listing details. Check the available tools for later testing, policy and release steps; connecting the account does not complete them.

A Play store build uses an Android App Bundle (AAB). A direct-install APK is a separate testing route. Expo’s current EAS Submit guidance supports the first internal release after the Play app record and service account are configured; it does not require a manual first upload. Check the chosen track and release status before approving an upload.

- [Google Play API setup](https://developers.google.com/android-publisher/getting_started)
- [Expo Android submission](https://docs.expo.dev/submit/android/)

## Before a production release

Section: https://www.rnblocks.dev/docs/publishing/accounts/google-play#next

Prepare a signed store build, complete the listing and App content tasks, choose a testing track and verify the app on real devices. Use Play Console to check that the uploaded build and declarations are ready for review.

An Android APK installed directly on a phone does not satisfy a required Play closed-testing period. See the testing guide for the current personal-account requirement.

- [Testing and tracks](https://www.rnblocks.dev/docs/publishing/testing)
- [Submission and review](https://www.rnblocks.dev/docs/publishing/submit-and-review)

## Continue

- [Websites and verification](https://www.rnblocks.dev/docs/publishing/websites-and-verification)
- [Accounts and costs](https://www.rnblocks.dev/docs/publishing/accounts)
- [Store assets](https://www.rnblocks.dev/docs/publishing/store-assets)
- [Privacy and support](https://www.rnblocks.dev/docs/publishing/privacy-and-support)

## Official references

- [Get started with Play Console](https://support.google.com/googleplay/android-developer/answer/6112435?hl=en)
- [Google developer account information](https://support.google.com/googleplay/android-developer/answer/13628312?hl=en)
- [Google developer contact requirements](https://support.google.com/googleplay/android-developer/answer/10840893?hl=en)
- [Manage a verified Play developer profile](https://support.google.com/googleplay/android-developer/answer/13634081?hl=en)
- [Google verification documents by country](https://support.google.com/googleplay/android-developer/answer/15633622?co=GENIE.CountryCode%3DUS&hl=en)
- [Verify your Google developer identity](https://support.google.com/googleplay/android-developer/answer/10841920?hl=en)
- [Verify your organization website](https://support.google.com/googleplay/android-developer/answer/13205715)
- [Create an app in Play Console](https://support.google.com/googleplay/android-developer/answer/9859152?hl=en)
- [Testing requirements for new personal Play accounts](https://support.google.com/googleplay/android-developer/answer/14151465?hl=en)
