To publish an app built with Bubble for native mobile apps on the Google Play Store, you need a Google Play Console developer account, an app in Google Play Console, and a Google Cloud project. Bubble then builds your app and, once everything is set up, delivers each new build to Google Play for you.
You connect your Bubble app to Google Play in the Bubble editor, and do the rest of the setup in Google's tools.
Bubble supports publishing to the Google Play Store only. Other Android app stores aren't supported.
Before you start
Create a Google Play Console developer account
To publish an Android app, you need a Google Play Console developer account.
Registration fee: Google charges a one-time registration fee for a developer account. The fee is set and managed by Google, independent of Bubble. See the Google Play Console Help for current pricing.
Google Play Console and Google Cloud Console
You'll use two of Google's tools during setup:
Tool | What it's for |
Publishing and managing your app on the Google Play Store: creating your app listing, uploading builds, managing releases and testing, setting pricing and distribution, and viewing crash reports and analytics. | |
Managing the Google services your app uses: creating the service account and JSON key that let Bubble upload your builds, turning on APIs, and managing API keys and billing for services like Google Maps. |
Google Play Console is for publishing and managing your app on the Google Play Store.
Google Cloud Console is for managing the Google services your app uses.
In short, Google Play Console is where you publish and manage your app, and Google Cloud Console is where you set up the access and services it needs. It can help to have both open in separate browser tabs while you set up your app.
Here's where each setup task happens:
Task | Where |
Create your app listing | Google Play Console |
Create a project, service account, and JSON key | Google Cloud Console |
Give Bubble access to upload builds | Google Play Console |
Turn on the Google Play Android Developer API | Google Cloud Console |
Add your package name, JSON key, and code signing details | Bubble editor |
Set up push notifications | Firebase Console, then the Bubble editor |
Add screenshots, a description, and a privacy policy | Google Play Console |
Terminology: This article uses terms that are specific to publishing on the Google Play Store. See the article below for a full terminology table.
Article: Native mobile app terminology
Connecting your app to the Google Play Store
You connect your Bubble app to Google Play in the Settings tab, under Native mobile, in the Android play store section.
1. Create your app in Google Play Console
Create the app listing your builds will be uploaded to. See Creating your app in Google Play Console below.
2. Create a JSON key in Google Cloud
The JSON key lets Bubble upload your builds to Google Play on your behalf. You create it from a service account in a Google Cloud project, and then give that service account access to your Google Play Console account. See Creating a JSON key below.
3. Open the Android play store settings
In Bubble, go to the Settings tab, and under Native mobile, open the Android play store section.
4. Fill in your app details
Enter your app's details:
Field | What to enter |
Package name | A unique ID for your app, like |
JSON key | The JSON key file you created in Google Cloud. |
Code signing | Bubble creates the keystore that signs your app for you. If you'd rather use your own, upload it and enter its alias and password. See Generating a keystore manually. |
5. Set up the remaining options
If your app uses push notifications, set up Firebase Cloud Messaging. See Push notifications.
Privacy policy: If your app requests or collects any kind of user data, for example camera access, Google requires a link to a privacy policy at a public URL. Apps without one can be rejected, so it's a good idea to prepare your privacy policy and add it while you set up your app in Google Play Console.
Creating your app in Google Play Console
1. Start a new app
In Google Play Console, click Create app.
2. Fill in the app details
Enter your app's name and the other details Google asks for. You can change this information later.
3. Finish creating the app
Follow the remaining prompts. When you're done, you're taken to your app's dashboard, where you'll manage your builds, store listing, pricing, and visibility.
Creating a JSON key
A JSON key is a secure credential that lets Bubble work with your Google Play Console account on your behalf. Specifically, it lets Bubble upload your Android builds directly to Google Play, without you uploading each file by hand. The key comes from a service account in a Google Cloud project.
Treat your JSON key like a password, and store it in a secure place.
Create a Google Cloud project
In Google Cloud Console, create a new project for your app. It's a good idea to create one project per app, so that API keys, billing, and permissions stay organized.
If you've used a Google API before, for example Google Maps, you may already have a project, but a dedicated project for your mobile app is usually easier to manage.
Creating a project with a personal or organization account
Creating a project with a personal or organization account
When you create a project, you may see an error like this:
You do not have the required resourcemanager.projects.create permission to create projects in this location.
This usually means you're signed in with a Google Workspace or company-managed account, and you don't have permission to create projects in your organization.
Account type | What to expect |
Personal Google account | You can usually create projects without any issues. You'll see No organization as the location, which is fine. |
Google Workspace or organization account | Project creation may be limited by an administrator. Ask an admin to create the project for you, or to give you the Project Creator role. |
Create a service account and JSON key
1. Open service accounts
In Google Cloud Console, go to IAM & Admin and select Service Accounts.
2. Check that you're in the right project
Make sure you're in your app's Google Cloud project. If you're not, use the project picker in the top bar to switch.
3. Create the service account
Create a new service account and give it a name, like bubble-deploy-access.
When it's created, copy the service account's email address. You'll need it in a later step.
4. Generate a JSON key
Click Add key to generate a new JSON key.
Select JSON as the key type.
Then, download the file. This is the file you'll add to Bubble.
Give the service account access to Google Play Console
1. Open users and permissions
In Google Play Console, go to Users and permissions.
2. Invite the service account
Click Invite new user, and paste the service account's email address into the Email address field.
3. Set permissions
Open Account permissions and choose the permissions for the account. To make publishing smoother, we recommend Admin (all permissions), so that Bubble can send your builds straight to Google Play. Then click Invite user.
Turn on the Google Play Android Developer API
For Bubble to upload your builds automatically, the Google Play Android Developer API needs to be turned on. In Google Cloud Console, open your app's project, go to Enabled APIs & services, and make sure Google Play Android Developer API is turned on.
Generating a keystore manually (optional)
A keystore is a file that holds the key used to sign your app. The signature proves that each new version of your app comes from you and hasn't been changed. Bubble creates a keystore for you, so you only need this section if you have a specific reason to manage it yourself, or an existing keystore you want to reuse.
Your keystore is essential for future updates. If you lose it, you can't publish updates to your app on the Google Play Store. Store it somewhere secure, and keep a backup.
Creating a keystore uses your computer's command line: Terminal on macOS, or Command Prompt on Windows.
1. Install Java
You need Java installed on your computer to create a keystore. On macOS, you can install it with Homebrew.
2. Open your command line
macOS: Open Terminal, which you'll find in Applications > Utilities.
Windows: Open Command Prompt by searching for cmd.
3. Run the command
Paste this command, and replace KEY_ALIAS with a name you'll remember, like appname_keys:
keytool -genkeypair -v -keyalg RSA -keysize 4096 -validity 10000 -keystore KEYSTORE_OUTPUT_FILE.keystore -alias KEY_ALIAS
Use the arrow keys to move the cursor, since the mouse doesn't work in the command line. Press Enter when you're ready.
4. Answer the prompts
Enter a password for your keystore. You won't see the characters as you type, which is normal. Then answer the questions about your name and organization, pressing Enter after each one. Write down your password, since you'll need it in Bubble.
5. Finish up
If you see a warning about migrating to a different keystore format, follow the instructions on screen. Your keystore is saved to your computer, usually in your user folder.
6. Add the keystore to Bubble
In the Android play store section, upload the keystore file, and enter its alias (what you replaced KEY_ALIAS with) and its password.
To move the keystore to another folder, like Documents, run mv KEYSTORE_OUTPUT_FILE.keystore Documents, using your file's actual name.
Deploying
In Bubble, deploying your mobile app means generating a build: the packaged version of your app. For Android, this is an Android App Bundle (.aab) file.
Your first deployment works a little differently from later ones, because Google requires the first build to be uploaded by hand:
1. Deploy your app
In the Bubble editor, click Deploy. Your first deployment is expected to fail. This is how Bubble generates your first Android App Bundle.
2. Download the build
You'll get an email shortly after you deploy, with a link to download the .aab file.
3. Upload it to Google Play Console
In Google Play Console, open your app, and upload the .aab file in a new release, for example under Testing or Production.
After the first manual upload, Bubble uploads future builds to Google Play automatically, as long as the Google Play Android Developer API is turned on.
If your app uses services like Google Maps, push notifications, or in-app purchases, make sure they're fully set up in both Bubble and Firebase before you deploy.
Testing
Before you go live, test your app on different devices and in different situations. Google Play Console offers several testing tracks:
Testing track | Who can test |
Internal testing | Your team, for quick testing with up to 100 testers |
Closed testing | Specific people you invite, outside your team |
Open testing | Anyone, through a public link. You need to fill in your store listing before you can use open testing. |
To test, create a release in the Testing section of Google Play Console, upload your build, and invite testers by email or with an opt-in link. Check that your app's main features work, and that it performs well on different Android devices.
Review
When your app has been tested, you can prepare it for Google's review. This includes your store listing:
Store listing item | What it is |
App name and short description | What users see first in the Google Play Store |
Full description | A longer description of your app |
App category | Where your app appears in the store |
Screenshots and graphics | Images that show your app |
Privacy policy URL | A link to your app's privacy policy |
You'll also need to fill in forms about your app's content rating, target audience, and data safety.
Take your time here, and check that everything is accurate and follows Google's Developer Program Policies. Incorrect or incomplete information, especially about user data and permissions, can lead to delays or rejection. Reviews usually take a few business days, and can take longer for new developer accounts.
Publishing
When your app is approved, you can publish it from the Production section of Google Play Console. You can choose how to roll it out:
Rollout option | How it works |
Full rollout | Your app becomes available to all users right away. |
Staged rollout | Your app is released to a small percentage of users first, so you can watch for issues before releasing it to everyone. |
Once it's live, your app appears in the Google Play Store. From then on, keep an eye on user reviews, crash reports, and usage data in Google Play Console.
Updates
After your app is live, you'll likely want to update it, whether to fix bugs, improve performance, or add features. There are two ways to update your app:
Update type | Best for | How it works |
OTA (over-the-air) update | Small changes, like bug fixes, text changes, and minor design tweaks | Bubble sends the update straight to your users, without a new review. |
New build | New features, bigger changes, and anything Google needs to review | Bubble creates a new build and uploads it to Google Play. You then release it from Google Play Console. |
To publish a new build:
1. Make your changes
Make your changes in Bubble, and test them.
2. Deploy a new build
Deploy your app and choose a release type for the new version. Bubble uploads the build to Google Play.
3. Release it in Google Play Console
Create a new release with the build, and write release notes that sum up what's new or improved.
Even for small changes, it's a good idea to test a new version before you release it. For bigger updates, consider a staged rollout.
Push notifications
The files in this section give access to your Firebase services. Treat them as sensitive credentials, and store them securely, as you would passwords or API keys.
Bubble sends push notifications to Android devices through Firebase Cloud Messaging (FCM). To set it up, you need two files from Firebase: a google-services.json file, and a Firebase service account key.
Get your google-services.json file
1. Create a Firebase project
In the Firebase Console, create a new project.
Give the project a name.
Google Analytics is optional, and not needed for push notifications.
2. Add your Android app
In the project overview, click the Android icon to add an app.
Enter your app's package name, which needs to match the package name in Bubble.
The app nickname and debug signing certificate are optional.
3. Download the file
Click Register app, then download the google-services.json file and store it securely.
Get your Firebase service account key
1. Open the service accounts
In the Firebase Console, go to Project settings and open the Service accounts tab.
2. Generate a key
Click Generate new private key and confirm.
Download the .json key file and store it securely.
Add the files to Bubble
1. Open the push notification settings
Go to the Settings tab, and under Native mobile, open the Android play store section.
2. Upload the files
In the Firebase Cloud Messaging settings, upload your google-services.json file and your Firebase service account key.
To publish your app on iOS too, see iOS App Store.























