Main steps and processes
- Apply for an iOS enterprise or personal developer account
- Enroll by linking Apple Developer Program - Apple Developer
- Register your app with App Store Connect
- Register Bundle ID for your app
- Check Xcode project settings
- Update the development version of the app
- Add APP launch icon
- Set up a signature account
- Create build archive
- Publish your app on TestFlight
- Publish your app on the App Store
Package and publish an iOS app
prepare in advance
Before starting the process of publishing your app, make sure you've reviewed Apple's App Store Review Guidelines .
To publish your app to the App Store, you need to enroll in the Apple Developer Program . You can see options for a number of different membership types in Apple's Choose Membership (Developer Type).
Register your app on App Store Connect
Manage your app lifecycle in App Store Connect (formerly iTunes Connect). You need to define your app name, description, and screenshots, then set prices and manage publishing to the App Store and TestFlight.
App Store Connect (formerly iTunes Connet) is where you will manage the app lifecycle. You'll define the app's name and description along with screenshots, set prices, and manage publishing to the App Store and Testflight.
Registering your app takes two steps: registering a unique Bundle ID and creating an app in your App Store Connect.
For more details on App Store Connect, see the App Store Connect guide.
Register Bundle ID
Every iOS app is associated with a unique bundle ID registered with Apple. To register a bundle ID for your app, follow the steps below:
- Open the App IDs page on your developer account page.
- Click + to create a new set ID.
- Enter an App Name, select Explicit App ID , and enter an ID.
- Select the service your app will use, then click Continue
- On the next page, confirm the details and click Register to register your Bundle ID.
Create an app record in App Store Connect
Register your app in App Store Connect:
Next, you need to register your app with App Store Connect:
- Open App Store Connect in your browser .
- On the landing page of App Store Connect, click My Apps .
- At the top left of the My Apps page, click + and select New App .
- Fill in your app details in the form that appears. In the Platform section, make sure iOS is selected. Since Flutter does not support tvOS for the time being, leave this option unchecked. Click Create .
- Jump to your app details and select App Information from the sidebar .
- In the Basic Information section, select the bundle ID you registered in the previous step.
For more information, see this help page Adding Apps to Your Account .
Check Xcode project settings
At this step, you need to check most of the important settings in the Xcode workspace. For more steps and descriptions, see Preparing for App Distribution .
Jump into your target settings in Xcode:
- In Xcode, open your App's
ios
directory inRunner.xcworkspace
- To see your app settings, select Runner in Xcode's project navigator
- Select the General tab
Next, you need to verify the most important configuration:
In the Identity section:
Display Name
The name of the application.
Bundle Identifier
App ID registered with App Store Connect.
In the Signing & Capabilities section:
Automatically manage signing
Whether Xcode is required to automatically manage app signing and settings. This is set by default true
and is suitable for most apps. For more complex scenarios, check out the Code Signing Guide .
Team
Select the team linked to your registered Apple developer account. If needed, select Add Account… , then update the options.
In the Build Settings section:
iOS Deployment Target
The minimum version of iOS your app will support, Flutter supports iOS 8.0 and later. If your app contains Objective-C or Swift code that uses APIs not supported by iOS 8, set the appropriate version.
Your project's General tab should look like this:
For more on the new introduction to app signing, see the documentation on creating , exporting, and deleting signing certificates .
Update the development version of the app
If you made changes in the Xcode project Deployment Target
, you need to open the Flutter app's ios/Flutter/AppframeworkInfo.plist
file and change MinimumOSVersion
the value to match.
Update app version number
The default initial version number for each application is 1.0.0
. To update it, go to the pubspec.yaml
file and update the following:
version: 1.0.0+1
The version number consists of three dot-separated numbers, as in the example above 1.0.0
. Then an optional build number, such as in the example above 1
, +
separated by .
Both the version number and the build number can --build-name
be --build-number
re-specified using and respectively when packaging Flutter.
In iOS, when build-number
used as CFBundleVersion
, build-name
used as CFBundleShortVersionString
. To read more about iOS version control see the Core Foundation Keys available on the Apple developer site .
Add app icon
When you create a new Flutter app, a default icon is created. In this step, you'll replace the placeholder icon with your own:
- Review the App Icon Guidelines for iOS.
- In the Xcode project navigator, select
Runner
Catalogs ,Assets.xcassets
and update the placeholder icon to be your own app's icon. - Verify that your icon has been replaced by
flutter run
executing .
Create a build archive
In this step, you will create a build archive and upload it to App Store Connect.
During development, you will use debug mode to build, debug, and test. When you're ready to deliver your app to users via the App Store or TestFlight, you need to prepare a release build. At this point you may want to obfuscate your Dart code to make it harder to decompile. Obfuscating your code requires adding some flags at build time and maintaining other files to eliminate decompiled stack traces.
From the command line in your application directory perform the following steps:
- Execute
flutter build ios
to create a release build (flutter build
points to by default--release
). - To make sure Xcode refreshes the release mode configuration, close and reopen your Xcode. For Xcode 8.3 and later, this step is not required.
In Xcode, configure the version of the app and start building:
- In Xcode, open your app's
ios
directoryRunner.xcworkspace
- Select Product > Scheme > Runner
- 选择 Product > Destination > Any iOS Device
- Select Runner in the Xcode project navigation bar , then select the Runner target in the sidebar of the settings interface .
- In the Identity section, update Version to the user-visible version number you want to publish.
- In the Identity section, the update build is marked with a unique build number for tracking on App Store Connect. Each upload requires a separate Build number.
Finally, create a build archive and upload it to App Store Connect:
- Select Product > Archive to generate a build archive
hint
在 Flutter 1.24.0-6.0 以及之后的版本你可以通过运行 `flutter build ipa` 创建一个归档(archive)。然后打开 Xcode 中的 `build/ios/archive/MyApp.xcarchive` 目录以验证并发布你的应用。运行 `flutter build ipa -h` 以查看可用标记。
- In the sidebar of the Xcode organization interface, select your iOS app, then select the build archive you just generated.
- Click the Validate... button. If any issues are reported, log them and start over with a new build. You can use the same Build ID until you upload an archive.
- When the archive is verified successfully, click Upload to App Store… . You can check the status of your build on the Activities tab of the app details page in App Store Connect .
hint
当你最后在 **Distribute App** 导出应用时,Xcode 将会创建一个含有你的应用 IPA 以及 `ExportOptions.plist` 文件的文件夹。在 Flutter 1.24.0-6.0 版本后,你可以无需启动 Xcode,通过运行 `flutter build ipa --export-options-plist=path/to/ExportOptions.plist` 就可以创建新的 IPA。运行 `xcodebuild -h` 以查看该属性列表中 key 的详细信息。
You'll receive a letter within 30 minutes to remind you when your build has passed validation and can be released to your testers via TestFlight or directly to the App Store.
For more information, see Upload an app to App Store Connect (Upload an app to App Store Connect)
Publish your app on TestFlight
TestFlight allows developers to distribute their apps to internal or external testers. This step is optional, and what follows will guide you through publishing your build to TestFlight.
- In App Store Connect , your app's details page jumps to the TestFlight Tab.
- Select Internal Testing in the sidebar .
- Select the build to publish to testers and click Save .
- Add emails for each internal tester. You can add additional internal users on the Users and Roles page in App Store Connect , and they will appear in a drop-down menu at the top of the page.
For more information, see Distribute an app using TestFlight (iOS, tvOS, watchOS) .
Publish your app on the App Store
When you're ready to release your app to the world, follow the steps below to submit your app for review and publish it to the App Store.
- Select Pricing and Availability from your app 's sidebar on the App Store Connect page , then complete all required information.
- Select Status from the sidebar. If this is the first time this app is published, the status will be 1.0 Prepare for Submission , fill in all the fields that need to be filled in.
- Click Submit for Review
Apple will remind you when their review process is over. Your app will be released as described in the Version Release section.
For more details, see Distributing an App via the App Store .
After you create an app, you can attract more users through Google Ads, and the Google Ads platform can help you attract more users with very high cost performance through machine learning.
- Create an ad - We'll help you create an ad based on your app information. Plus, you can add pictures and videos.
- Decide on a promotion budget—For campaigns whose primary goal is to drive app installs, you'll need to set an app install bid, or "target cost-per-install," along with a daily promotion spend budget.
- Select Target Regions - Let us know which regions of users you want to reach.
- Set User Actions - Decide what you want your users to do, such as installs, in-app actions, or target return on ad spend (ROAS).
Troubleshooting
The Distributing Your App Guide provides a detailed description of the process of publishing an app to the App Store.
finally