iOS App Store
Last updated
Was this helpful?
Last updated
Was this helpful?
To build and publish an iOS app, you must enroll in the Apple Developer Program. You can sign up for an account .
Annual fee: Apple requires an annual payment of $99 to maintain your developer account. This fee is set and managed by Apple, independent of Bubble.
Once your Apple Developer account is set up, you must create and configure a project in .
App Store Connect is Apple’s platform for managing your iOS apps, this is where you can configure your app metadata, submit builds for review, track performance, and manage your account.
Apple Developer is the broader platform for developers, where you sign up for the Apple Developer Program (required to publish apps) and access tools like APIs, and developer documentation. It also includes Certificates, Identifiers & Profiles for app signing and provisioning.
App Store Connect is the platform specifically used for managing and distributing apps on the App Store. It’s where you create app listings, upload builds, manage TestFlight testing, view analytics, and submit apps for review.
In other words, Apple Developer is where you prepare and sign your app, while App Store Connect is where you submit and manage it on the App Store.
Throughout this guide we will be setting up and utilizing both to connect our Mobile app, so please have them open in separate tabs.
An identifier is a unique string used to distinguish your app from others within Apple's ecosystem. In iOS development, the most important identifier is the Bundle ID, which is required for app submission, provisioning, and integration with Apple services.
This is where we create the new identifier.
Click the + button to add a new identifier.
Choose App IDs as the identifier type and click Continue.
Select App then click Continue.
Provide a description for the identifier that makes it easy to recognize which app you are setting it up for. Then, manually define your Bundle ID.
Choose one of the following formats:
Explicit Bundle ID (e.g., com.yourcompany.yourappname) – used when you're registering one specific app.
Wildcard Bundle ID (e.g., com.yourcompany.*) – used when you want to register multiple apps that share the same base identifier.
Note: The Bundle ID must use only letters, numbers, hyphens (-), and periods (.) and follow the reverse-DNS format (e.g., com.yourcompany.yourapp).
Be sure to use descriptive names or wildcard Bundle IDs for easy management, especially if you plan to have multiple apps in the App Store.
For example, for our individual app, we might use com.bubble.workplacedemo
Do NOT manually create a distribution certificate before building, as this can lead to conflicts that prevent the build to complete successfully. See more information in the expandable box below.
Once you've reviewed your submission, click 'Register' to complete the process. You have now successfully created an identifier for your app with a Bundle ID.
Creating a Private Key / Key ID refers to generating a secure authentication key within App Store Connect.
This key is used to authorize API access for managing app-related tasks, such as submitting builds, managing users, and retrieving analytics.
The Private Key (.p8
file) is a confidential credential, while the Key ID is an identifier associated with it.
Security: Treat your private key like a sensitive credential and store it securely. Also, keep a secure backup to avoid development interruptions.
Next, navigate to the Integrations sub-section, and find the Keys tab.
In App Store Connect, API keys can be created at either the team level (Team Key) or for individual accounts (Individual Key). A Team Key is used when multiple members need access to App Store Connect APIs, allowing team-wide authorization.
Only the Account Holder can generate and manage these keys, ensuring secure access control.
An Individual Key, on the other hand, is tied to a single developer’s account and is typically used when working independently.
However, if you’re part of an organization account, you may only have the option to generate a Team Key, as API access is managed centrally by the account owner.
Click Generate API Key where applicable
Assign Admin Access
Provide admin access to the new API key.
Note: If using a team account, the account holder must approve the request to generate API keys.
Download and Save the Key
Download the .p8
key file. You cannot download it again after leaving the page, so be sure to store it securely.
Copy Issuer and Key IDs
After creating the key, you will see an Issuer ID and Key ID. Keep these accessible for later use.
Upload Private Key (.p8
key file)
In App Store Connect, a "project" typically refers to the bundle of your app’s code and settings that you manage and submit to the App Store. It's associated with your app's bundle ID and is linked to an App Store Connect app record, where you manage app metadata, builds, pricing, and distribution.
Click on My Apps and then click the + button to select New App.
Enter app details:
Name: The name your app will display on the App Store.
Primary Language: Select the main language your app will support.
Bundle ID: Select the Bundle ID you previously created in Apple Developer.
SKU: A unique internal identifier for your app, which will not be displayed publicly. Click Create to finalize your app project.
After setting up your project, Bubble will automatically deliver your build to App Store Connect when you deploy.
Make sure to securely save your Bundle ID and API keys, as they’re essential for submitting your app. With everything in place, you’ll be ready to launch your Bubble app on iOS and move forward with the App Store submission.
Ensure that the file and ID mentioned in the guide below are stored securely. They should be considered sensitive data similar to login credentials and API keys.
Go to Apple Developer Console
To successfully send push notifications, do the following:
Navigate to Certificates, IDs & Profiles and then Identifiers.
Select the relevant app in the list of identifiers.
You will see a list of different capabilities.
Scroll down to Push Notifications and click Configure to set it up.
Navigate to Certificates, Identifiers & Profiles.
Under the Keys section, click the + button to create a new key.
Enter a name for your key and select the Apple Push Notifications service (APNs) capability.
Click Continue, then Register.
Download your key file (.p8
) immediately.
Important: This file can only be downloaded once.
Make note of the following details:
Key ID: Displayed on the key configuration page.
Private key: The .p8
file you downloaded.
Store this key securely, as it is sensitive.
Unlike the older certificate-based method, a single APNs key can be used across all your apps within your team.
Enter the Key ID
Open your Bubble app and go to the Settings – Mobile.
Scroll to the Apple Push Notifications service section.
Enter the APNs key ID into the field with the same name.
Upload the APNs key
Open your Bubble app and go to the Settings – Mobile.
Scroll to the Apple Push Notifications service section.
Upload the APNs key file (.p8) in the APNs key field.
In Bubble, deploying your mobile app means generating the final packaged version of your app’s code and assets — this is known as a build.
When you deploy, Bubble takes care of everything for you behind the scenes: it generates the build file, configures app settings like icons and splash screens, and automatically sends the build to App Store Connect.
When generating a build in Bubble, you'll notice there are different build types, such as OTA (Over-the-Air) and New Build.
For your first deployment, you can only choose New Build, as this creates a fresh build record that can be used for TestFlight testing or App Store submission. OTA is typically used later in the development process for pushing minor updates during internal testing.
Once you’ve finished setting up your app and are ready to generate a build, click Deploy.
Bubble will automatically package your app and submit the build to App Store Connect on your behalf.
The process can take up to 45 minutes, and occasionally, builds may fail. If that happens, you’ll receive an email with details about the error.
When the build is successfully uploaded, Bubble will send you a confirmation email.
TestFlight is Apple’s official beta testing platform that lets you distribute your iOS app to testers before it's released on the App Store. Testers install your app build through the TestFlight app, and use it like a regular app.
On TestFlight they can provide feedback or report bugs, helping you identify issues and improve the experience before launch.
Navigate to the TestFlight tab in the top menu.
Your build may take a few minutes to appear, as Apple needs to finish processing it (checking for basic compliance and compiling internal metadata). Apple will send you an email once it’s ready.
If you don’t see the build after some time:
Refresh the page
Check that the correct Bundle ID was used
Confirm in Bubble that the build was submitted
Step 2: Add Testing Information
Click on your new build, and fill out the required testing information:
What to Test: Describe the features that need review or are new.
Build Notes: Include known issues, what’s changed, or instructions.
This information will be shown to testers in the TestFlight app and helps guide meaningful feedback.
Internal testers are members of your App Store Connect team who can test without needing approval from Apple.
To invite them:
Go to the Users and Access section in App Store Connect.
Ensure they have the appropriate role (usually “Developer” or “App Manager”).
Back in the TestFlight tab, assign internal testers to the build.
They’ll get an email with a link to download the app via the TestFlight app.
If you want people outside your team (like early users, beta testers, or clients) to try the app:
Go back to the TestFlight tab and choose “Add External Testers.”
You’ll need to submit your build for Beta App Review. This is a lighter review than a full App Store submission but still checks for basic functionality and compliance with Apple guidelines.
Once approved, you can:
Invite individual testers via email
Or generate a public TestFlight link to share broadly
You can manage testers in groups or individually, and track installs and activity from this panel.
Testers will download the TestFlight app and install your beta app from there. They can:
Send feedback directly through TestFlight (including screenshots and written notes)
Report crashes or issues
Automatically provide session and usage data
You can view this data inside the TestFlight dashboard under your app’s build.
Based on tester feedback:
You can make updates in Bubble
Generate a new build or send OTA updates
Submit again via Bubble to App Store Connect
Each new build will appear in the TestFlight tab, and you can re-invite testers or assign it to new ones. TestFlight supports multiple active builds, so you can test different versions if needed.
🎉 You’re TestFlight is now ready
This process helps you fine-tune your app with real users before going live. Once you’re confident in the stability and experience, you’re ready to move on to your Review and Submission process.
Once your build is successfully uploaded to App Store Connect, the next step is to submit it for Apple’s App Review. This is a standard part of the iOS publishing process where Apple evaluates your app to ensure it meets their guidelines for performance, security, content, and functionality.
To start the review process, go to your app in App Store Connect, select the build you just uploaded, and submit it under the App Information > Version Release section. You’ll need to provide screenshots, a description, a support URL, and other required metadata before submitting.
If you need to resubmit your app: Resubmitting a build can be a bit tricky. Here’s what to do:
Re-build the app in the Bubble editor.
Wait for the build to finish.
In App Store Connect, hover over the old build to reveal the delete icon and remove it.
Select the new build from the list and resubmit your app for review.
After your app passes Apple’s review, you’re ready to publish it to the App Store. You’ll have two options: manual release or automatic release. Manual gives you control over when the app goes live, while automatic releases it as soon as Apple approves it.
To publish manually, go to your app version in App Store Connect and click Release This Version when you're ready. If you choose automatic release during the review submission, your app will go live as soon as it's approved — no extra steps needed.
Once live, your app will be available to download via the App Store based on the availability settings (regions/countries) you selected. Congratulations — your Bubble app is officially published on iOS!
Now that your app is live on the App Store, you’ll likely need to update it — whether for bug fixes, performance improvements, or new features. In Bubble, you have two main update paths: OTA (Over-the-Air) and New Builds — and it's important to understand how versions work in both contexts.
Ideal for minor bug fixes, text changes, and light UI tweaks.
No need to re-submit to the App Store — these updates are pushed instantly.
When you choose the OTA build type, Bubble deploys the update behind the scenes.
Users automatically receive the update the next time they launch the app.
Required for new features, structural changes, API modifications, or anything Apple needs to review.
A New Build generates a fresh .ipa file, which Bubble sends to App Store Connect.
You'll need to submit this build for review just like your original launch.
Once approved, you can choose to release it manually or automatically.
Every time you create a New Build when you deploy, you’ll be prompted to pick a release type, which will create a version number (e.g., 1.1, 2.0).
Stick with semantic versioning (MAJOR.MINOR.PATCH) to keep things organized.
OTA updates typically don’t change your app version number — they apply to the existing version silently.
You can view and manage your version history in App Store Connect under your app’s "Activity" tab.
Apple allows you to have multiple builds active for TestFlight, but only one live version of your app can be published on the App Store at a time.
However, you can:
Release different builds to different tester groups using TestFlight (e.g., staging vs production builds).
Keep older versions available via TestFlight while testing newer versions internally.
Use versioning internally in Bubble to test changes on a dev version before deploying to production.
Learn how to submit your app to the Google Play store here.
Go to and log in to your account.
Navigate to your account page and click on Identifiers in the menu bar.
Sign in to your Apple Developer Account at .
Navigate to then click on Users and Access
Go to and log in with your developer account.
Log in to your account.
Sign in to your Apple Developer account at.
Go to, click on My Apps, and select your app.
Once submitted, the review typically takes anywhere from a few hours to a couple of days, though this can vary. You’ll be notified by email as soon as your app is approved or if any issues need to be resolved. Be sure to review Apple’s to avoid common pitfalls.