Add iOS as a target platform from Android start
To add iOS as a Flutter app target for macOS, follow this procedure.
Install Xcode
#- Allocate a minimum of 26 GB of storage for Xcode. Consider allocating 42 GB of storage for an optimal configuration.
- Install Xcode 16 to debug and compile native Swift or ObjectiveC code.
Configure iOS development
#Install and configure Xcode
#To develop Flutter apps for iOS, install Xcode to compile to native bytecode.
Open the App Store and sign in.
Search for
Xcode
.Click Install.
The Xcode installer takes up 6+ GB of storage. The download might take some time.
To configure the command-line tools to use the installed version of Xcode, use the following commands.
sudo sh -c 'xcode-select -s /Applications/Xcode.app/Contents/Developer && xcodebuild -runFirstLaunch'
Use this path for the latest version of Xcode. If you need to use a different version, specify that path instead.
Sign the Xcode license agreement.
sudo xcodebuild -license
Try to keep to the current version of Xcode.
Configure your target iOS device
#With Xcode, you can run Flutter apps on an iOS device or on the simulator.
Configure your iOS simulator
#To prepare to run and test your Flutter app on the iOS simulator, follow this procedure.
To install the iOS Simulator, run the following command.
xcodebuild -downloadPlatform iOS
To start the Simulator, run the following command:
open -a Simulator
Set your Simulator to use a 64-bit device. This covers the iPhone 5s or later.
From Xcode, choose a simulator device type.
Go to Window > Devices and Simulators.
You can also press Cmd + Shift + 2.
Once the Devices and Simulators dialog opens, click Simulators.
Choose a Simulator from the left-hand list or press + to create a new simulator.
From the Simulator app, go to File > Open Simulator > Choose your target iOS device.
To check the device version in the Simulator, open the Settings app > General > About.
The simulated high-screen density iOS devices might overflow your screen. If that appears true on your Mac, change the presented size in the Simulator app.
Display Size Menu command Keyboard shortcut Small Window > Physical Size Cmd + 1 Moderate Window > Point Accurate Cmd + 2 HD accurate Window > Pixel Accurate Cmd + 3 Fit to screen Window > Fit Screen Cmd + 4
Set up your target physical iOS device
#To deploy your Flutter app to a physical iPhone or iPad, you need to do the following:
- Create an Apple Developer account.
- Set up physical device deployment in Xcode.
- Create a development provisioning profile to self-sign certificates.
- Install the third-party CocoaPods dependency manager if your app uses Flutter plugins.
Create your Apple ID and Apple Developer account
#You can skip this step for now. You don't actually need an Apple Developer account until you are ready to distribute your app to the App Store.
If you only need to test deploying your app, complete the first step and move on to the next section.
If you don't have an Apple ID, create one.
If you haven't enrolled in the Apple Developer program, enroll now.
To learn more about membership types, check out Choosing a Membership.
Attach your physical iOS device to your Mac
#Configure your physical iOS device to connect to Xcode.
Attach your iOS device to the USB port on your Mac.
On first connecting your iOS device to your Mac, your iOS device displays the Trust this computer? dialog.
Click Trust.
When prompted, unlock your iOS device.
Enable Developer Mode on iOS 16 or later
#Starting with iOS 16, Apple requires you to enable Developer Mode to protect against malicious software. Enable Developer Mode before deploying to a device running iOS 16 or later.
Tap on Settings > Privacy & Security > Developer Mode.
Tap to toggle Developer Mode to On.
Tap Restart.
After the iOS device restarts, unlock your iOS device.
When the Turn on Developer Mode? dialog appears, tap Turn On.
The dialog explains that Developer Mode requires reducing the security of the iOS device.
Unlock your iOS device.
Enable developer code signing certificates
#To deploy to a physical iOS device, you need to establish trust with your Mac and the iOS device. This requires you to load signed developer certificates to your iOS device. To sign an app in Xcode, you need to create a development provisioning profile.
To provision your project, follow the Xcode signing flow.
Launch Xcode.
Go to Xcode > Settings...
- Go to Xcode > Settings...
- Click Accounts.
- Click +.
- Select Apple ID and click Continue.
- When prompted, enter your Apple ID and Password.
- Close the Settings dialog.
Development and testing supports any Apple ID.
Go to File > Open...
You can also press Cmd + O.
Navigate to your Flutter project directory.
Open the default Xcode workspace in your project:
ios/Runner.xcworkspace
.Select the physical iOS device you intend to deploy to in the device drop-down menu to the right of the run button.
It should appear under the iOS devices heading.
In the left navigation panel under Targets, select Runner.
In the Runner settings pane, click Signing & Capabilities.
Select All at the top.
Select Automatically manage signing.
Select a team from the Team dropdown menu.
Teams are created in the App Store Connect section of your Apple Developer Account page. If you have not created a team, you can choose a personal team.
The Team dropdown displays that option as Your Name (Personal Team).
After you select a team, Xcode performs the following tasks:
- Creates and downloads a Development Certificate
- Registers your device with your account,
- Creates and downloads a provisioning profile if needed
If automatic signing fails in Xcode, verify that the project's General > Identity > Bundle Identifier value is unique.
Enable trust of your Mac and iOS device
#When you attach your physical iOS device for the first time, enable trust for both your Mac and the Development Certificate on the iOS device.
You should have enabled trust of your Mac on your iOS device when you attached the device to your Mac.
Enable developer certificate for your iOS devices
#Enabling certificates varies in different versions of iOS.
Open the Settings app on the iOS device.
Tap on General > Profiles & Device Management.
Tap to toggle your Certificate to Enable
Open the Settings app on the iOS device.
Tap on General > VPN & Device Management.
Tap to toggle your Certificate to Enable.
Open the Settings app on the iOS device.
Tap on General > VPN & Device Management.
Under the Developer App heading, you should find your certificate.
Tap your Certificate.
Tap Trust "<certificate>".
When the dialog displays, tap Trust.
If the codesign wants to access key... dialog displays:
Enter your macOS password.
Tap Always Allow.
Set up wireless debugging on your iOS device (Optional)
#To debug your device using a Wi-Fi connection, follow this procedure.
Connect your iOS device to the same network as your macOS device.
Set a passcode for your iOS device.
Open Xcode.
Go to Window > Devices and Simulators.
You can also press Shift + Cmd + 2.
Select your iOS device.
Select Connect via Network.
Once the network icon appears next to the device name, unplug your iOS device from your Mac.
If you don't see your device listed when using flutter run
, extend the timeout. The timeout defaults to 10 seconds. To extend the timeout, change the value to an integer greater than 10.
flutter run --device-timeout 60
Install CocoaPods
#If your apps depend on Flutter plugins with native iOS code, install CocoaPods. This program bundles various dependencies across Flutter and iOS code.
To install and set up CocoaPods, run the following commands:
Install
cocoapods
following the CocoaPods install guide.sudo gem install cocoapods
Launch your preferred text editor.
Open the Zsh environmental variable file
~/.zshenv
in your text editor.Copy the following line and paste it at the end of your
~/.zshenv
file.bashexport PATH=$HOME/.gem/bin:$PATH
Save your
~/.zshenv
file.To apply this change, restart all open terminal sessions.
Check your development setup
#Run Flutter doctor
#The flutter doctor
command validates that all components of a complete Flutter development environment for macOS.
Open your Terminal.
To verify your installation of all the components, run the following command.
flutter doctor
As you chose to develop for iOS, you do not need all components. If you followed this guide, the result of your command should resemble:
Running flutter doctor...
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.27.0, on macOS 14.4.0 23E214 darwin-arm64, locale en)
[✓] VS Code (version 1.95)
[✓] Connected device (1 available)
[✓] Network resources
! Doctor found issues in categories.
Troubleshoot Flutter doctor issues
#When the flutter doctor
command returns an error, it could be for Flutter, VS Code, Xcode, the connected device, or network resources.
If the flutter doctor
command returns an error for any of these components, run it again with the verbose flag.
flutter doctor -v
Check the output for other software you might need to install or further tasks to perform.
If you change the configuration of your Flutter SDK or its related components, run flutter doctor
again to verify the installation.
Start developing iOS on macOS apps with Flutter
#Congratulations. Having installed all prerequisites and the Flutter SDK, you can start developing Flutter apps for iOS on macOS.
To continue on your learning journey, consult the following guides:
Unless stated otherwise, the documentation on this site reflects the latest stable version of Flutter. Page last updated on 2024-04-12. View source or report an issue.