I just got a new Mac Mini with M1 CPUs. The first thing I did was install Chrome. The next thing I did was install Flutter.
So I went to flutter.dev and downloaded the latest build. I extracted it, then created a new .zshrc and added flutter to my PATH. Then I ran
flutter. It started downloading the Dart SDK, then threw this error:
% flutter xcode-select: note: no developer tools were found at '/Applications/Xcode.app', requesting install. Choose an option in the dialog to download the command line developer tools. Downloading Dart SDK from Flutter engine 92ae191c17a53144bf4d62f3863c110be08e3fd3... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 174M 100 174M 0 0 1506k 0 0:01:58 0:01:58 --:--:-- 2572k Building flutter tool... $home/flutter/bin/cache/dart-sdk/bin/pub: line 49: $home/flutter/bin/cache/dart-sdk/bin/dart: Bad CPU type in executable $home/flutter/bin/cache/dart-sdk/bin/pub: line 49: $home/flutter/bin/cache/dart-sdk/bin/dart: Undefined error: 0 Error: Unable to 'pub upgrade' flutter tool. Retrying in five seconds... (9 tries left)
A quick search on Google led me to this post. I installed Rosetta, then made Terminal.app open with Rosetta. For now I'll do this at the cost of performance, so that I don't have to hunt down which ones are compatible and which ones are not compatible with M1 yet.
And now that it's running fine, I realize there was indeed a note on installing Flutter on Macs with M1 processors:
Android Studio, Android Emulator, Visual Studio code are not ready for a stable build for M1, but it's being worked on. Things should get better in a few months at most. Until then there's always Rosetta.
Installing the Emulator
Selecting an arm64 version of Android R did not work. So I had to use the emulator preview release.
It works mostly fine, except for WebView, says the documentation. When I tried it, it worked indeed. Then I launched my app, and clicked on the button to sign in. I'm using Firebase Auth, and what it does is, it makes you sign in... in a WebView. The WebView never showed up, and so I am unable to test my app in the emulator.
Can I run the Intel version of the emulator with Rosetta? No because the emulator uses virtualization, says the Android Studio team.
So I am stuck using my slower MacBook until they release a proper emulator.
Installing the Emulator, 2nd try
Fast forward a few weeks, and it looks like new versions of the Emulator have been released. According to this post, it's even downloadable through the AVD Manager in Android Studio!
I followed the steps and downloaded the same image. However, the Emulator refused to run. The error was something like "The Emulator was killed". A quick search on Google reveals that quite a few users ran into the same issue a few days ago:
It looks like version 3 is broken, but version 2 isn't. The users show a way to manually replace that image with an old one, but I simply opted for downloading the separate Alpha Emulator from GitHub at https://github.com/google/android-emulator-m1-preview/releases/tag/0.3.
This version has WebViews, so I was able to run my Flutter app and sign in with Google. That will suffice for now!