How to Develop for iOS Device in Windows Environment With Flutter

How to Develop for app 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 app iOS Device in Windows Environment with Flutter.

In this blog post, we’ll explore the ins and outs of implementing pagination in Firestore with Flutter. Pagination is a crucial technique for efficiently fetching and displaying large datasets in your Flutter applications. Whether you’re building a social media feed, an e-commerce product list, or any other app that requires handling a large amount of data, understanding how to implement pagination in Firestore is essential for a smooth and optimized user experience. Join us as we guide you through the step-by-step process of implementing pagination, discuss various strategies to handle data loading, and highlight best practices to ensure efficient querying and smooth scrolling. Get ready to master the art of pagination in Firestore and take your Flutter app’s performance to new heights!

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 Runner.app. Create a folder called Payload and place Runner.app 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 
    before_script: 
     - 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 https://github.com/flutter/flutter.git -b beta --depth 1 
    script: 
     - flutter/bin/flutter build ios --debug --no-codesign
    cache: 
      directories: 
      - $HOME/.pub-cache
    before_deploy: 
      - pushd build/ios/iphoneos 
      - mkdir Payload 
      - cd Payload 
      - ln -s ../Runner.app 
      - 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. 🙂

Conclusion:

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

In this article, we have been through how to develop the iOS app without MacOS in a flutter.

Keep Learning !!! Keep Fluttering !!!

Build beautiful, cross-platform apps with Flutter. Get inspired by FlutterAgency’s library of projects and tools.

Looking for inspiration and resources for your next Flutter project? Look no further than FlutterAgency. Explore our extensive library of widgets, projects, and code libraries, all created by passionate developers.

Abhishek Dhanani

Written by Abhishek Dhanani

Abhishek Dhanani, a skilled software developer with 3+ years of experience, masters Dart, JavaScript, TypeScript, and frameworks like Flutter and NodeJS. Proficient in MySQL, Firebase, and cloud platforms AWS and GCP, he delivers innovative digital solutions.

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 comment

Your email address will not be published. Required fields are marked *


ready to get started?

Fill out the form below and we will be in touch soon!

"*" indicates required fields

✓ Valid number ✕ Invalid number
our share of the limelight

as seen on