Flutter has become one of the most popular open-source mobile UI frameworks created by Google. Developers use Flutter to create attractive user interfaces across all different devices, and a single codebase can be used to create two separate apps for iOS and Android devices. This article focuses on deploying a Flutter App on the iOS AppStore. It’s crucial to follow the right steps and avoid any issues with publishing on the AppStore. We have provided all the necessary information to benefit both novice and advanced developers. The first sub-heading explains how to publish a flutter app on Apple Store using Xcode by highlighting the basic requirements and providing the initial steps before building the app. You’ll also find the steps for reviewing Xcode project settings before release and the steps for building and publishing the Flutter App to Apple App Store.
As mobile applications continue to increase in popularity, developers do their best to take advantage of the numerous programming tools available. One such tool that has recently been making waves is Flutter.
Flutter is a completely free and open-source mobile UI framework developed and released to the general public by Google. It creates attractive user interfaces across all devices, like desktops, mobile devices, the web, etc., and by utilizing a single codebase, Flutter can create a native mobile application. Simply put, developers can use one programming language and one codebase to create two separate apps for iOS and Android devices.
Almost every Flutter application developer wishes to create a public app that will be downloaded and used by many people worldwide. Depending on a developer's experience level, it's normal to make mistakes or miss a step when publishing a Flutter app. We've compiled this step-by-step guide to show the easiest and most effective way to publish a Flutter application on the iOS App Store.
Publishing your Flutter app on Apple App Store using Xcode
Before diving into the basic requirements, it’s important to note that a subscription fee is required before the deployment can take place. An annual subscription of $100 is required to enroll in Apple’s developer program.
Basic Requirements
- Create an Apple Developer account.
- Ensure that there’s a clear understanding of Apple's guidelines for releasing an app on the app store.
- App icons and launch screens need to be implemented according to Apple's guidelines.
Initial Steps before Building and Releasing the App
Prior to building and releasing the app on the App Store, it's important to use App Store Connect to create a place for it. The first step is registering a unique bundle ID for the app. To do so, log into your Apple Developer account and follow the steps below:
- Go to the App IDs page and open it.
- Click the + icon to create a new Bundle ID.
- Fill in the necessary information like App Name, Explicit App ID, and others.
- If the app you wish to deploy requires specific services, choose them and select Continue.
- Go over the information and click Register to finish the process.
After registering a unique bundle ID, the next step is to set up a place for the app on the App Store Connect. Start by logging in to the App Store Connect platform.
- Select the My Apps option.
- Click the + icon and select New App.
- Fill in the required details for the app and ensure iOS is selected. Click Create.
- Select App Information from the sidebar.
- Go to the General Information section and select the Bundle ID that was registered initially.
Review Xcode project settings before the release
- Go to the app’s iOS folder and open Runner.xcworkspace.
- Select the Runner project from the Xcode project navigator.
- Choose Runner target from the main view sidebar.
- Next, click the General tab.
- From the Identity section, fill out the necessary information. Double-check to be sure the Bundle ID is registered on App Store Connect.
- Click Automatically manage sign- and select the team for the sign-in process.
- Fill in any other information as needed.
- Go to the Runner folder and update the app’s icon by selecting Assets.xcassets from Xcode’s project navigator.
Build and Deploy the app to the Apple app store
- Run Flutter build ios in the command line.
- Revisit Xcode and open Runner.xcworkspace
- Select the following to create a build archive:
Product - Scheme - Runner.
Product - Destination - Generic iOS Device.
Product - Archive
- Choose the created iOS app from the sidebar on the Xcode Organizer window and pick out the build archive that was just produced.
- Tap the Validate button to start building.
- After successfully validating the archive, click Upload to AppStore.
Note: It's important to go back to App Store Connect and visit the Activities tab to check the build's status.
- Go to Pricing and Availability and fill out the necessary information.
- Choose the status from the sidebar.
- Click Prepare for Submission and fill out the necessary information in the fields provided.
- Finally, click the Submit for Review tab.
After following the steps, the app will be uploaded to the App Store. Apple will review the app before releasing it and provide regular updates on its status.
Time to finalize
The process of deploying a Flutter app to the Apple App Store can take some time, but Flutter's documentation and community support streamline the process. Eventually, all the hard work will pay off when the app is approved and released. Thankfully, Apple’s review time is relatively short. Research has shown that about 50% of apps are reviewed in 24 hours, and over 90% get reviewed within 48 hours.
Ultimately, the nature of the app determines if it will follow the normal review time or receive an extended review. To be on the safe side, it’s best to ensure that all the necessary information, like user accounts or special instructions for the app, are provided before getting ready for review. It is very important that the app complies with Apple's guidelines, so make sure you are aware of those as you go through this process.
*This is not the official Fetchly opinion but the opinion of the writer who is employed by Fetchly*