Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Developing for iOS device in Windows environment with Flutter

I'm new to Flutter, was just wondering if it's possible.

I've tried building the demo code using intellij with given instruction (https://flutter.io/setup/). It runs well on android device, but can't find the option to compile and run on my iOS device.

like image 243
YYY Avatar asked Oct 30 '17 01:10

YYY


Video Answer


2 Answers

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.

Update

It seems like there are more possibilities now. Read the following articles:

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

Personally, I ended up buying a MacBook Pro for way too much money. I have to admit that it is convenient, but I have done very little up to this point that really required it. I'm doing all of my learning and development in Android Studio and usually use the Android emulator. Every now and then I fire up the iOS simulator, but I haven't been required to.

My advice is to keep using your current system (Windows or Linux) for as long as you are learning and even while you are developing your first Flutter apps. Eventually you may appreciate the convenience of having the iOS Simulator and Xcode on the same machine, but there is certainly no rush.

like image 57
Suragch Avatar answered Sep 22 '22 15:09

Suragch


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).

First, create an account or sign in to codemagic.io.

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 an .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).

Alternative: Building the app with Travis CI You’ll need to create an account on Travis CI and let it access your GitHub account.

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 

More info

like image 28
Payam Khaninejad Avatar answered Sep 19 '22 15:09

Payam Khaninejad