Is it possible to develop iOS apps with Flutter on a Linux virtual machine?

Yes, you can develop iOS apps with Linux (or Windows) using Android Studio or Visual Studio Code. The point of Flutter is that you have one code base and can deploy to both Android and iOS. So the development phase is no problem.

In the past you could only deploy iOS apps to the App Store if you had a Mac, but there are some more options now. See the following articles:

  • How to sign Flutter apps for iOS automatically without a Mac
  • Developing and debugging Flutter apps for iOS without a Mac
  • How to develop and distribute iOS apps without Mac with Flutter & Codemagic
  • Build an iOS app without a Mac or iPhone using Flutter

To test your app on the iOS simulator, though, it is still necessary to have a Mac. However, theoretically the app should have the same behavior for most things as on an Android device, so you wouldn't necessary need to test it using the iOS simulator. I would say long term you would probably want to consider getting a Mac, but it is certainly not necessary in the beginning.

Update: In a recent app I made, my tests passed in the Android emulator but crashed in the iOS simulator. It was a normal bug and nothing specific to iOS, but for some reason the Android simulator didn't crash. So for a production app, you really do need to test it on an iOS device/simulator.


As you point in your question:

To develop Flutter apps for iOS, you need a Mac with Xcode 7.2 or newer.

You can work around by using an external service (like Travis-ci or other) to build your code for iOS. However it's not usable as a developer workflow as that can take several minutes to get the artefact.


You should check out MacOS cloud solutions like MacInCloud. There are CI/CD solution that will support it (e.g. CircleCI and BitRise) however these are not suited for development.

Services like MacInCloud allow you to remote desktop into a Mac where you could conceivably use XCode remotely.