App Store Deployment

FlutterFlow now integrates with app store deployment, streamlines the process of launching your applications.

Before deploying your app, we recommend testing your application on a real device. Here are instructions on how to do this.

Prerequisites

  • Create an Apple account.

  • Purchase an Apple Developer membership. Please see this link for more details on the Apple Developer program and how to sign up.

  • Set an App Launcher Icon for your app (under Settings & Integrations > General > App Assets). The App Launcher icon can't be transparent or contain an alpha channel.

Deploy to App Store

Deploying to App Store comprises of following steps:

1. Create a Bundle Identifier

A Bundle Identifier (ID) is a unique number that identifies your app inside of the Apple ecosystem.

Please follow these steps to create a Bundle ID:

  1. Open your FlutterFlow project and navigate to Settings & Integrations. Select your Package Name and copy it (Cmd/Ctrl + C).

  2. Open the Apple Developer homepage, select Certificates, IDs & Profiles (far left menu), and then select Identifiers.

  3. Click on the Add button (+).

  4. The Register a new identifier page will open. Select App IDs and then select Continue.

  5. Select App and then click Continue.

  6. Enter the App Bundle Information:

    1. Bundle ID: paste the Package Name that you copied from FlutterFlow. Double-check that the Package Name in FlutterFlow is the same as the Bundle ID. If these are different, errors will occur.

    2. Description: Provide a short description of your app (this will appear in the app store).

    3. Capabilities: scroll down and select the capabilities that are required for your app. Important: You must select Push Notifications from the list if you add this feature to your app. Also, if your app uses Apple Sign In - make sure to check the box for Sign In with Apple.

  7. When you are done, select Register.

2. Add a new app to App Store Connect

App Store Connect is used to submit apps to the App Store, manage apps, and more.

Please follow these steps to add a new app to App Store Connect:

  1. Navigate to App Store Connect and then select My Apps.

  2. Click on the Add button (+) and then select New App.

  3. A popup will appear. Enter your app information:

    1. Platform: for mobile apps, this will be iOS.

    2. Name: Enter a Name for your app (this is the name that will show in the App Store).

    3. Primary Language for your app.

    4. Bundle ID: Select the Bundle ID you created in the previous step.

    5. SKU: Enter a unique identifier. You can also add your Bundle ID here, as long as it is unique.

    6. User Access: Set the user access. If you select Limited Access, you will need to select the users that you would like to be able to access this app. This will only appear if you have other users included in your App Store Connect account.

  4. When you are done, select Create.

You will then be navigated to the main dashboard for your app.

3. Add your Apple App ID to FlutterFlow

An App ID is used by Apple to identify your app and associate it with your development team.

Please follow these steps to add your App ID to FlutterFlow:

  1. From App Store Connect, select My Apps, and then select your app.

  2. Select App Information (under General in the left Sidebar).

  3. Scroll down to General Information and find your Apple ID.

  4. Select the Apple ID and copy it.

  5. Return to FlutterFlow and navigate to Settings & Integrations > App Settings > Deployment.

  6. Paste the Apple ID into the box labeled App ID.

4. Generate your API key and add It to FlutterFlow

Please follow these steps to generate your API Key:

  1. Return to the App Store Connect page. If you have closed this window, navigate to App Store Connect and select Users and Access, and then select Keys (blue text).

  2. If you see the Request Access button, click on it.

  3. If you haven't added any key before, click on the Generate API Key. Otherwise, select the Add button (+).

  4. A popup will appear. Enter your API Key Information:

    • Name: Enter a name for the key. This is a reference and is not part of the key itself.

    • Access: Select the "App Manager" role. We will use this API key to be able to deploy the app to the app store for you automatically.

  5. When you are done, select Generate.

  6. Find the row for the API Key you just generated and select Download API Key. A popup will appear, select Download.

  7. Return to FlutterFlow and navigate to Settings & Integrations > App Settings > Deployment.

  8. Under Private Key, select Upload Private Key. Select the API Key File and then select Open.

If you don't see the Download API Key link immediately, refresh your page.

5. Add your issuer ID to FlutterFlow

  1. Navigate to App Store Connect and select Users and Access, and then select Keys (blue text).

  2. Locate the Issuer ID and select Copy.

  3. Return to FlutterFlow and navigate to Settings & Integrations > App Settings > Deployment.

  4. Paste the Issuer ID into the box labeled Issuer ID.

6. Add your Key ID to FlutterFlow

  1. Return to the App Store Connect page. If you have closed this window, navigate to App Store Connect and select Users and Access, and then select Keys (blue text).

  2. Find the row for the API Key you just generated and select Copy Key ID.

  3. Return to FlutterFlow and navigate to Settings & Integrations > App Settings > Deployment.

  4. Paste the Key ID into the box labeled Key ID.

7. Deploy

You can deploy directly from FlutterFlow or from your GitHub repository.

Please follow these steps to deploy from FlutterFlow:

  1. From FlutterFlow, navigate to Settings & Integrations > App Settings > Deployment.

  2. Scroll down to find the App Store section and click on the arrow icon on the right to open it.

  3. Click on the Deploy To App Store.

  4. A popup will appear. Select Deploy. If another deployment is in progress, selecting Deploy will cancel the previous deployment.

  5. Please note: It can take a few minutes for this request to process. Once this step is complete, your Latest Message will change to Submitted.

  6. It can take 30 minutes to several hours for your app to be deployed to the App Store. You can check the status of your deployment by selecting Check Build Status.

  7. Once complete, you will receive an email from App Store Connect that a new build has been added to your app.

8. Submit your app for App Store approval

  1. From App Store Connect, select My Apps, and then select your app.

  2. Enter your Version Information. This page contains additional information on what is required, localized, and editable.

  3. When you are done, select Submit For Review.

Your app will now be reviewed by Apple. For additional information on Apple's review guidelines, please see this link.

FAQs

Invalid App Store Icon. The App Store Icon in the asset catalog in 'Runner.app' can't be transparent nor contain an alpha channel.

You need to update your App Launcher Icon (under Settings & Integrations --> General) with an image that isn't transparent and/or doesn't contain an alpha channel.

After submitting my iOS app to the App Store, I am getting an 'ITMS-91053: Missing API declaration' issue. What should I do?

Apple requires that apps using certain APIs have a Privacy Manifest file that declares the reason for using the API. Apple will begin requiring this file for App Store approval on May 1, 2024.

Most packages that FlutterFlow uses already have a Privacy Manifest created by the package author or FlutterFlow team. However, there may be some cases where packages don't have the necessary privacy manifest needed.

Similarly, if you have written custom code that calls these APIs directly or uses a package that calls the APIs, you must ensure that your app has the required manifest file.

Here are the steps you can take to resolve this issue:

  1. See if the custom package you use is listed here; ensure to use the latest version if you are using any of these.

  2. If unsure which package is using protected APIs, you may be able to use a tool like this to identify them. Once identified, update to the latest versions, as the package author may have addressed compliance issues.

    1. To verify, look into the package's changelog or source code for a PrivacyInfo.privacy file, which indicates compliance (examples here and here).

    2. If the current package hasn’t resolved the issue, consider using an alternative package that complies, or contact the package's maintainer for a fix.

  3. If you have written a custom iOS code that is accessing the APIs:

    1. In FlutterFlow, navigate to Settings & Integrations > App Settings > Privacy Manifest Configuration.

    2. Activate the necessary API reasons and select the appropriate reasons from the dropdown. A detailed explanation of each API reason can be found here.

Last updated