How to Develop for iOS Device in Windows Environment With Flutter ??

· 5 min read
How to Develop for iOS Device in Windows Environment With Flutter
How to Develop for iOS Device in Windows Environment With Flutter

Earlier we have been through articles like How to Programmatically Exist the App in Flutter and How to Format DateTime In Flutter. So in this article, we will walk through how to develop for iOS Device in Windows Environment with Flutter.

Are you ready for the same? let’s get started.

How to Develop for iOS Device in Windows Environment With Flutter??

You can do your main development on Linux or Windows with Android Studio or Visual Studio Code. Then use git to move the code to macOS to test it with Xcode on an iOS simulator/device and deploy it to the App Store.

You could do all development on macOS but you can’t do all development on Linux or Windows. I’m not too pleased with Apple for making overpriced machines and then forcing us to buy them.

Since I can’t afford a fast Apple computer, I am planning to do most of my development on Linux and then just do testing and deployment on my painfully slow Mac Mini.

You could do that with a Mac (or Hackintosh, or VM), but since we don’t have access to a macOS machine we can use one remotely via Codemagic or Travis CI — completely free! as long as your project is on a GitHub, Bitbucket or GitLab Repository.

Then, click the settings (gear) icon next to your app. Scroll down and click on “Build”. Make sure Mode is set to Debug and select iOS under Build for platforms.

After that, build the app (Start your first build).

Codemagic will send you a .app file via email. Rename it so that it ends with .zip. Extract it, and you’ll get a folder called Create a folder called Payload and place there.

Finally, compress the folder called Payload — this will be your IPA file (you may rename it to .ipa).

Then, create .travis.yml on the root of your project with the following contents:

os: osx 
    language: generic 
     - brew update 
     - brew install --HEAD usbmuxd 
     - brew unlink usbmuxd 
     - brew link usbmuxd 
     - brew install --HEAD libimobiledevice 
     - brew install ideviceinstaller 
     - brew install ios-deploy 
     - git clone -b beta --depth 1 
     - flutter/bin/flutter build ios --debug --no-codesign
      - $HOME/.pub-cache
      - pushd build/ios/iphoneos 
      - mkdir Payload 
      - cd Payload 
      - ln -s ../ 
      - cd .. 
      - zip -r app.ipa Payload 
      - popd

You can also read it here.

  • put your app on GitHub (public) and give access to codemagic
  • then you should build your app using code magic for IOS.
  • then you should use Cydia Impactor for signing the file that CodeMagic has sent to you
  • prepare your windows machine by installing libimobiledevice, and ideviceinstaller.
  • Modify Flutter code to not looking for Xcode
  • Running and debugging

Here we have used this method it works fine you can hot reload and debug your app the downside is you have to enter an apple id password in Cydia Impactor which for sure you should use a second apple id and after the apple provisioning profile expiring you should sign your code with Cydia Impactor again. but it’s so much cheaper than by a Mac or rent one. 🙂


Thanks for Reading !!! Tell me your views on the articles below 🙂

In this article, we have been through how to develop the iOS device in a windows environment with flutter.

Keep Learning !!! Keep Fluttering !!! is our portal Platform dedicated to Flutter Technology and Flutter Developers. The portal is full of cool resources from Flutter like Flutter Widget GuideFlutter ProjectsCode libs and etc. is one of the most popular online portals dedicated to Flutter Technology and daily thousands of unique visitors come to this portal to enhance their knowledge of Flutter.

1 comment

  1. You should really be testing on a real device. And item for item, Apple machines are no more expensive than comparable other vendors. The myth of the Apple “surcharge” is long gone.

Leave a Reply