-
Notifications
You must be signed in to change notification settings - Fork 1
Developing with Flutter on Apple Silicon
Flutter includes support for developing on macOS devices with Apple Silicon (M1) hardware. This wiki page documents ongoing work relating to the Flutter toolchain providing native support for this processor architecture.
We recommend using Flutter 2.5 or later on Apple Silicon machines. You must also have the Rosetta 2 translation environment available, which you can install manually by running:
$ sudo softwareupdate --install-rosetta --agree-to-license
You can use Apple Silicon-based Mac devices as a developer workstation (host) for building Flutter apps. While some tools still use Rosetta, Apple Silicon-based Macs are fully supported as a host.
Depending on your tolerance for risk, you may want to experiment with the beta
or dev
channel as we build more native Apple Silicon support into the tooling.
Issue 60118 tracks the full set of work to support this feature.
Flutter has support for building macOS apps, with beta snapshots available in the stable
channel and ongoing development taking place.
Compiled Intel macOS binaries work on Apple Silicon without change thanks to the Rosetta 2 translation environment, which converts x86_64 instructions to ARM64 equivalents.
We also plan to offer support for compilation directly to ARM64, as well as universal binaries that combine x86_64 and ARM64 assets. Issue 60113 is the umbrella bug tracking this work.
If you experience a problem relating to using Flutter on Apple Silicon hardware, please file an issue on GitHub with specific repro steps and information about your hardware and software configuration (paste the results of flutter doctor -v
). Thank you!
- Home of the Wiki
- Roadmap
- API Reference (stable)
- API Reference (master)
- Glossary
- Contributor Guide
- Chat on Discord
- Code of Conduct
- Issue triage reports
- Our Values
- Tree hygiene
- Issue hygiene and Triage
- Style guide for Flutter repo
- Project teams
- Contributor access
- What should I work on?
- Running and writing tests
- Release process
- Rolling Dart
- Manual Engine Roll with Breaking Commits
- Updating Material Design Fonts & Icons
- Postmortems
- Setting up the Framework development environment
- The Framework architecture
- The flutter tool
- API Docs code block generation
- Running examples
- Using the Dart analyzer
- The flutter run variants
- Test coverage for package:flutter
- Writing a golden-file test for package:flutter
- Setting up the Engine development environment
- Compiling the engine
- Debugging the engine
- Using Sanitizers with the Flutter Engine
- Testing the engine
- The Engine architecture
- Flutter's modes
- Engine disk footprint
- Comparing AOT Snapshot Sizes
- Custom Flutter engine embedders
- Custom Flutter Engine Embedding in AOT Mode
- Flutter engine operation in AOT Mode
- Engine-specific Service Protocol extensions
- Crashes
- Supporting legacy platforms
- Metal on iOS FAQ
- Engine Clang Tidy Linter
- Why we have a separate engine repo
- Reduce Flutter engine size with MLGO
- Setting up the Plugins development environment
- Setting up the Packages development environment
- Plugins and Packages repository structure
- Plugin Tests
- Contributing to Plugins and Packages
- Releasing a Plugin or Package
- Unexpected Plugins and Packages failures