iOS/App Store
Apple Developer Program
You will need an Apple developer account to build and publish an iOS app. An Apple developer account can be created here.
Annual payment: An Apple Developer account requires an annual payment, which is handled solely by Apple. This fee is mandatory and is not connected to or regulated by Bubble.
Before you begin: We recommend reading through this article completely before beginning the process, as it contains valuable tips and best practices that can be helpful to understand in advance.
Terminology
Term | Definition |
---|---|
.p8 File | The file format for the private key used with App Store Connect API. It contains sensitive information needed to upload iOS builds. |
API Key | A security credential used to authenticate and interact with services like App Store Connect. Needed to allow Bubble to submit builds automatically. |
App ID | The identifier that links the app to the Bundle ID and various app services. App IDs are used to set permissions and configurations for apps. |
App Store Connect | Apple’s platform for managing and submitting iOS apps to the App Store, handling app metadata, distribution, and user reviews. |
Apple Developer Account | A required account to develop and distribute apps on Apple’s App Store. It also grants access to developer resources like Certificates, Identifiers & Profiles. |
Bundle ID | A unique identifier for your app, used in Apple Developer and App Store Connect. |
Certificates, Identifiers & Profiles | A section in the Apple Developer account where you handles security credentials (like developer certificates), app-specific identifiers (like the Bundle ID), and provisioning profiles required for app distribution. |
Identifier | An identifier is a unique value used to distinguish one app from another. It helps Apple and other systems recognize the app across various services and devices. The Bundle ID is such an identifier. |
Issuer ID | A unique identifier associated with your API key in App Store Connect. It’s used to authenticate API requests. |
Key ID | Another unique identifier tied to your API key in App Store Connect. Required when submitting builds from Bubble. |
Private Key | A file used for authentication when submitting app builds to App Store Connect. It’s part of the API key and cannot be retrieved again if lost. |
Project | In App Store Connect, a project represents an app that’s in development or already released. It contains all the necessary metadata and settings for the app. |
SKU | A unique identifier for tracking the app within the App Store, not visible to users. It helps developers manage apps internally. |
XCode | Xcode is an integrated development environment (IDE) created by Apple for developing software for its platforms, including iOS, macOS, watchOS, and tvOS. |
Creating a new Project
After you’ve set up your Apple Developer account, the next step is to create projects within the App Store Connect platform. These projects need to be properly configured to gather the necessary details, such as bundle identifiers, provisioning profiles, and certificates, which will be essential when you build and submit your app for review.
Each app is typically considered one project.
Step 1: Generate a Bundle ID (iOS)
Sign in to Your Apple Developer account
Go to developer.apple.com and sign in.
Navigate to Certificates, Identifiers and Profiles
Under the Account section, locate Certificates, Identifiers & Profiles.
Register a new Identifier
Select Identifiers in the sidebar under the iOS, tvOS, watchOS section.
Click the + button to create a new identifier.
Create the Bundle ID
Select App IDs as the identifier type.
Click Continue.
Enter app details
Description: Give your app a name for easy identification in your Developer account.
Bundle ID: Choose between an Explicit Bundle ID (e.g., com.yourcompany.yourappname) for a single app or a Wildcard Bundle ID (e.g., com.yourcompany.*) if you plan to use the same ID across multiple apps.
Confirm and register
Review your details and click “Register” to finalize your Bundle ID.
Your Bundle ID is now registered and can be used in Xcode and App Store Connect.
Tips
Choosing a Bundle ID: Use a reverse-domain format (e.g., com.yourcompany.yourappname) to ensure uniqueness.
Organizing multiple apps: Use descriptive names or wildcard Bundle IDs for easy management.
Step 2: Create a Private Key / Key ID
Navigate to App Store Connect and sign in.
Create a new API Key
Go to Users and access and select the Keys tab under the Integrations sub-section
Click Generate API key
Give the key admin access.
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 make sure to store it securely.
Copy Issuer and Key IDs.
After creating the key, you'll see an Issuer ID and Key ID. Be sure to keep these accessible for later use.
Extract Private Key
Open the downloaded .p8 file in a text editor and copy its contents. This is your private key needed to submit iOS builds from Bubble.
Tips
Security: Treat your private key like a sensitive credential and store it securely.
Backup: Keep a secure backup to avoid development interruptions.
Step 3: Create a Project
Go to App Store Connect and log in with your developer account.
Click on My Apps and then click the + button to select New App.
Enter app details:
App 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 identifier for your app, which will not be displayed publicly.
Click Create to finalize your app project.
Step 4: Connect Bubble to App Store Connect
Once your project is set up, Bubble will automatically send your build directly to App Store Connect. Be sure to store your Bundle ID and API keys securely, as they are crucial for the build submission process.
By following these steps, you'll be ready to deploy your Bubble app on iOS and proceed with the App Store submission process.
Last updated