52

I am new to developing mobile apps and wanted to try Flutter but I use Windows. Because Flutter doesn't support Windows yet I had the idea to use a virtual machine running Linux to install Flutter. Does this work?

Also in the Flutter setup it says this:

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

Is there a way to develop iOS apps without having a Mac?

4
  • 1
    Most probably it is not possible. Just like with any other cross-platform framework - phonegap/facebook-react etc. ASFAIK you can develop apps and test it on Android phones but to compile an iPhone version you need a macOS machine. There is no remote-compile/cloud-compile solution at the moment for Flutter. Commented Nov 13, 2016 at 23:22
  • After rereading the question and the answer i noticed that i may have misunderstood your question. Flutter Apps can be developed on Linux and Mac (see faq and setup requirements). I thought that you develop in dart and flutter takes care or the operating system of the the target mobile device. Why would you need ios other for testing?
    – surfmuggle
    Commented Jan 18, 2017 at 18:07
  • @surfmuggle I don't think it is even possible to compile code for ios on Linux. Of course I could write code and test it with Android but I have no way of testing it on ios (as you mentioned) and no way to even create the app for ios.
    – philipp
    Commented Jan 19, 2017 at 16:17
  • 1
    Adding to this question, is it possible to develop the app on linux and having an macos as a "compilation server"? I don't like using macos at all but I want to create mobile apps for android and ios using flutter.
    – nicowernli
    Commented May 11, 2018 at 9:00

5 Answers 5

67

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:

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.

8
  • 19
    In other words, no, you can't do it without a Mac, but there are services that let you use somebody else's Mac.
    – Mud
    Commented Aug 7, 2019 at 16:02
  • 4
    @Mud, you can develop a Flutter app without a Mac, but you can't deploy to iOS without one.
    – Suragch
    Commented Aug 7, 2019 at 16:38
  • Right, the pronoun "it" in my sentence was referring to "build/deploy".
    – Mud
    Commented Aug 7, 2019 at 19:05
  • @Suragch blog.codemagic.io/… this link says otherwise.
    – BEvo
    Commented Apr 12, 2020 at 22:28
  • 3
    @Mud, you are right. You either have to install a VM with Mac on your Windows or Linux (Hackintosh), but this is not so simple. Or you can use external service that let you use a MacOS machine some are free like Appollo (github.com/Appollo-CLI/Appollo) some aren't. Commented Sep 1, 2022 at 7:43
10

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.

0
2

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.

0

Windows is now partially supported in the way you can edit and publish for Android but you still can't create for IOS where a mac is required (XCode). More informations https://flutter.io/setup-windows

3
  • But not to develop iOS apps. The app you develop in Flutter on Windows might work on iOS, but you can't run it as iOS app on Windows (using for example an emulator) or deploy it to the Apple app store, at least as far as I know. Commented May 15, 2017 at 5:45
  • You're right ! which means that there's now a place for a startup that will build your Flutter app on remote server and then publish to market place à la Cordova. Commented May 15, 2017 at 9:45
  • 2
    There are a few tools that can do just that today. Like Appollo for example : github.com/Appollo-CLI/Appollo Commented Sep 1, 2022 at 7:46
0

You can use tools like Odevio to do just that directly from Windows or Linux.

To install Odevio you can find everything you need on https://www.odevio.com, then setup your developer account with Odevio (https://odevio-cli.readthedocs.io/en/latest/tutorial/6_configure_app_store_connect.html) once this is done you can start building your app in the build page.

2
  • Sounds nice, but at the end of the day, it's connecting to Apollo Remote for the build, which is MacOS on an unknown server apollo.deuse.dev. As I don't have any control what's happening on that server, I strongly recommend NOT to use it. The build server could inject malicious code into your application, e.g. with a backdoor or virus. Nobody wants to take such a huge risk. Commented Jan 6, 2023 at 14:38
  • Hello Mick, thanks for the comment. Of course, you are looking at our private dev environment. This is not where the VMs are located for our user. We use MacOS from MacStadium, located in Dublin, Ireland and in Atlanta, USA. I invite you to check Appollo again, we just made a new release today! github.com/Appollo-CLI/Appollo
    – JulienP95
    Commented Mar 21, 2023 at 13:19

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.