使用Flutter在Windows环境中为iOS设备开发


75

我是Flutter的新手,只是想知道是否有可能。

我尝试使用带给定指令(https://flutter.io/setup/)的intellij构建演示代码。它在android设备上运行良好,但找不到在iOS设备上编译和运行的选项。


1
我在Windows上运行intellij CE。尝试编译Flutter演示以在我的iPhone SE上运行。你知道怎么?
YYY

3
为了在iOS上编译/运行,您需要一台Mac。自第一款iPhone以来,这种要求一直存在。
莫里森·张

@MorrisonChang是正确的。您可能无法在Windows计算机上运行iOS版本。
dasfima

使用NativeScript,可以在云中构建iOS版本(docs.nativescript.org/sidekick/getting-started/build)。借助Xamarin,您可以使用Xamarin Live Player应用在iOS设备上测试您的代码。我希望Google将来也会提出类似的建议。
ndreisg

不幸的是扑扑没有能力。扑扑看起来不错,但是使用Adobe Air,您可以通过USB在ios设备上构建和运行应用程序,而无需macOS。adobe已经有很长时间了)Google也应该能够提供这种支持。
Fuad

Answers:


64

您可以使用Android Studio或Visual Studio Code在Linux或Windows上进行主要开发。然后使用git将代码移至macOS,以在iOS模拟器/设备上使用Xcode对其进行测试,然后将其部署到App Store。

您可以在macOS上进行所有开发,但不能在Linux或Windows上进行所有开发。我对苹果生产过高价格的机器然后强迫我们购买它们感到不满意。由于我买不起一台快速的Apple计算机,因此我计划在Linux上进行大部分开发,然后在速度极慢的Mac Mini上进行测试和部署。

更新资料

现在似乎还有更多的可能性。阅读以下文章:

就个人而言,我最终以太多的钱购买了MacBook Pro。我必须承认它很方便,但是到目前为止,我确实做得很少。我在Android Studio中进行所有的学习和开发,并且通常使用Android模拟器。我时不时地启动iOS模拟器,但并不需要。

我的建议是,在学习期间甚至在开发第一个Flutter应用程序时,都应继续使用当前系统(Windows或Linux)。最终,您可能会喜欢将iOS Simulator和Xcode安装在同一台计算机上的便利,但是肯定不会着急。


8
也有一些托管的虚拟Mac。我使用的是托管的云,它非常适合编译。另一种选择是计算机上的虚拟机。
博斯特(Bostrot)

1
@Bostrot托管的mac的任何链接都将有所帮助。
gegobyte

1
@Chinmay Sarupria我个人只知道macincloud,但是Google搜索将为您带来更多收益。
Bostrot

1
谁能推荐有关如何在Windows上使用Mac OS设置虚拟机的教程?
Kirill Karmazin

22

您可以使用Mac(或Hackintosh或VM)来执行此操作,但是由于我们无法访问macOS机器,因此可以通过CodemagicTravis CI远程使用一台机器 -完全免费!(只要您的项目在GitHub,Bitbucket或GitLab存储库上)。

首先,创建一个帐户或登录到codemagic.io

然后,点击应用旁边的设置(齿轮)图标。向下滚动并单击“构建”。确保将“模式”设置为“调试”,然后在“构建平台”下选择“ iOS”。

之后,构建应用程序(开始第一个构建)。

Codemagic将通过电子邮件向您发送.app文件。重命名它,使其以.zip结尾。解压缩它,您将获得一个名为Runner.app的文件夹。创建一个名为Payload的文件夹,并将Runner.app放在此处。最后,压缩名为Payload的文件夹-这将是您的IPA文件(您可以将其重命名为.ipa)。

备选方案:使用Travis CI构建应用程序 您将需要在Travis CI上创建一个帐户,并允许其访问您的GitHub帐户。

然后,在项目的根目录下创建.travis.yml,其内容如下:

 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

更多信息


1
是的,但是我想在iOS上运行它,并在推出之前至少查看一下新版本。您不能只在Android上进行测试,然后为iOS产品构建
Kirill Karmazin

@KirillKarmazin我建议您在构建和发布之前,基于OS编写测试并使用Fastlane或Codemagic CI / CD。在您提到的其他场景中,您必须在Mac中构建Flutter,然后您的目标发行版首先是iOS,而不是Android。
Payam Khaninejad

为了在CodeMagic上免费构建版本,我的Bitbucket存储库是否必须是公共的?
尤利西斯·阿尔维斯

1
@UlyssesAlves不,不需要公开
Payam Khaninejad

6

我建议您使用虚拟机来执行操作。.我在Windows 10上安装了Mojave MacOS,并且运行顺利!

可以从https://getintopc.com/softwares/operating-systems/mac-os-mojave-10-14-1-vmware-image-free-download/获取Mojave映像

我发现这很有用,因为当我有戴尔自由度时,有一些我想离开Mac世界的东西。


您是否可以将iPhone设备连接到虚拟机上的macOS?
Kirill Karmazin

我没有测试过..但是我不认为是否有可能...模拟器可以完成这项工作
emanuel sanga

1
@emanuel_sanga我可以确认这是可能的。我做到了没有任何问题。我在Windows 8.1上设置了VMware Workstation虚拟机,并在其中运行Mojave映像。然后,您必须安装XCode并执行所有与Apple ID相关的登录步骤。然后,您可以插入iPhone(使用Apple ID登录),它们可以正常工作。顺便说一下-实际的物理设备似乎是测试通知的唯一方法,因为它们无法在模拟器上正常工作(例如,如果您使用的是Firebase)
Kirill Karmazin


4

你可以读这篇文章

它使用一些工具和CodeMagic为Ios构建Flutter应用。

  1. 将您的应用程序放置在GitHub(公共)上并提供对codemagic的访问权限
  2. 那么您应该使用IOS的代码魔术来构建您的应用。
  3. 那么您应该使用Cydia Impactor对CodeMagic发送给您的文件进行签名
  4. 通过安装libimobiledevice,ideviceinstaller来准备Windows机器。
  5. 修改Flutter代码以不查找Xcode
  6. 运行和调试

我使用过这种方法,效果很好,您可以热加载和调试应用程序,但缺点是您必须在Cydia Impactor中输入Apple ID密码,以确保您应该使用第二个Apple ID,并且在Apple置备配置文件到期后,您应该对代码进行签名再次与Cydia Impactor合作。但比Mac或租用Mac便宜得多。


不幸的是,当前,此方法不起作用。Cydia Impactor论坛上有一些记录,自2019年12月以来没有得到解答,涉及71条错误消息,不允许安装该应用程序。另外,他们要求您提供iCloud登录名和密码。
kovalyovi '20

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.