无需使用 Mac 进行 Xamarin Visual Studio IOS 开发?

76

我是一名.NET开发人员,想使用C#编写IOS和Android应用程序。我已经阅读了有关Visual Studio的Xamarin,尽管有点贵,但看起来很有趣!

需要Mac来调试代码吗?你只需要一个连接到网络的Mac来将应用程序部署到商店吗?

最好的选择是购买一台Mac,在虚拟机中运行Windows和VS,还是可以只使用Windows计算机,在Windows中编写和调试代码,然后仅连接到网络上的Mac进行最终部署?

7个回答

46

从 2017 年 5 月开始,您可以在没有 MAC 的情况下开发应用。

微软 Xamarin 推出了一个 Live Player。使用 Live Player,可将 iOS 应用程序直接部署到运行 Visual Studio 的 PC 上的 iPhone 或其他 iDevice 上进行测试和调试。


警告 Xamarin Live Player 预览版已结束。但它更改了热重装功能。使用此功能,您可以使用 iPhone 开发 iOS 应用 查看讨论

请观看此视频:https://www.youtube.com/watch?v=awgZDL1a3YI

这是 Live Player 入门部分:Live Player

注意:最终构建并提交到 App Store 仍需要 Mac。

设备要求

Xamarin Live Player 应用支持以下设备:

iOS

  • iOS 9.0 或更高版本。
  • ARM64 处理器。
  • 检查 App Store 获取支持的设备 列表

Android

  • Android 4.2 或更高版本。
  • ARM-v7a、ARM-v8a、ARM64-v8a、x86 或 x86_64 处理器。

限制

Xamarin Live Player 可以运行的内容存在一些限制,包括以下内容:

  • 不支持使用 AXML 文件设计的 Android 用户界面。
  • 一些 iOS storyboard 功能不受支持。
  • 不支持 iOS XIB 文件。
  • 不支持自定义渲染器。
  • Xamarin.Forms的效果不受支持。
  • 不支持嵌入式资源(例如在PCL中嵌入图像或其他资源)。
  • 反射的支持有限(目前影响一些流行的NuGets,如SQLite和Json.NET)。其他NuGet仍然受支持。
  • 某些系统类无法被覆盖(例如,您无法实现子类)。
  • 某些需要配额的平台功能无法在Xamarin Live Player应用程序中使用(但已经配置了常见操作,例如相机访问)。
  • 自定义目标和构建步骤将被忽略。例如,无法整合像Fody这样的工具。

  • 2
    当我开始使用Xamarin时,遇到了一个小问题。根据https://blog.xamarin.com/xamarin-live-player-faq/的说法,反射并不像你期望的那样工作。我一直在苦苦思索为什么我的JSON.NET代码无法正确序列化,这让Live Player对我来说毫无用处,因为我的应用程序通过json与rest api通信。 - JohnB
    这是否意味着我可以仅使用Visual Studio和Xamarin在我的Windows 10 Pro电脑上,在不购买Mac的情况下,在iPad Pro上编写完整的GUI? - Doug Null
    4
    根据讨论区所述,iOS版Live Player已经停用:“我们将不再发布Xamarin Live Player的iOS版本。” - Anders Carstensen
    2
    我发现iOS Live Player也挂了。根据你有多想喂这个野兽,最便宜、最省时间的方法就是买一个价值400美元的Mac mini。苹果不会从这些垃圾机器上赚到什么钱,所以你不会给他们带来太多负担,而且你的所有烦恼基本上都会消失。唉 - Newclique
    有人尝试过在使用XAML预览器进行iOS开发时,结合macinCloud或MacStadium(实际App Store提交所需)吗? - niico
    显示剩余3条评论

    41

    是的,进行Xamarin.iOS开发必须使用Mac电脑。 Mac电脑不仅用于构建项目,也需要用来运行iOS模拟器。你可以将它用作构建服务器,并在Visual Studio中(可以在独立计算机上或在Mac上运行的虚拟机中)进行开发,或者直接在Mac上使用Xamarin Studio作为IDE进行开发。


    1
    谢谢@Jason,那么解决这个问题的最佳方式是使用在Mac上通过Parallels等虚拟机运行Windows吗? - Hardgraf
    我个人只使用Xamarin Studio集成开发环境,但很多喜欢Visual Studio的人则在虚拟机中运行它。 - Jason
    9
    学习Objective-C和Java并不足够。假设你也要为Windows Phone开发,你还需要维护三个不同的代码库。投资于能够同时为所有平台添加新功能、修复错误并发布的能力,绝对是值得的。 - Mike
    3
    这篇文章从一个经验丰富的角度详细讲述了使用Visual Studio 2015和Xamarin Forms的原因和如何入门:http://vincenth.net/blog/archive/2014/11/18/why-and-how-to-get-started-with-visual-studio-2015-and-xamarin-forms.aspx - Paul Perrick
    6
    请注意,自此答案发布以来,情况已经发生了变化。在2017年中期,Xamarin发布了Live Player(请参见@ebattulga的回答),该工具允许“iOS的连续开发和调试”(https://www.xamarin.com/live)。更多信息请参见https://arstechnica.com/?post_type=post&p=1094721。 - Christopher Brown
    显示剩余2条评论

    28
    您可以使用Xamarin Studio代替Visual Studio并通过C#构建iOS应用程序。 首先安装VMware Workstation,然后下载OS X映像并通过VMware运行它。
    然后在其中安装所需工具并享受它们。
    工具:
    iOS所需的工具:
    1)Windows的Mac OS X映像 注意:Max OS X安装帮助: http://www.sysprobs.com/easily-run-mac-os-x-10-8-mountain-lion-retail-on-pc-with-vmware-image 2)Mono: http://download.xamarin.com/MonoFrameworkMDK/Macx86/MonoFramework-MDK-3.2.4.macos10.xamarin.x86.pkg 3)Xamarin Studio: http://download.xamarin.com/studio/Mac/XamarinStudio-4.2.1-1.dmg 4)MonoTouch: http://download.xamarin.com/MonoTouch/Mac/monotouch-7.0.4.209.pkg 5)Xcode

    18
    我完全使用VMware来开发和发布iOS应用程序,没有mac。 - Morteza Soleimani
    2
    @Hardgraf 我编辑了我的答案,你可以找到所有你需要的工具。 - Morteza Soleimani
    9
    在非苹果硬件上直接或通过虚拟机运行OS X都违反了苹果的许可协议。 - Jason
    1
    在Mac上,您可以同时为Android和iOS开发应用程序,但在Windows上,只能为Android开发。如果您有Mac,则无需虚拟机即可进行开发。但是,如果您使用的是Windows,则需要设置vmware来加载Mac,并在其中开发iOS应用程序。 - Morteza Soleimani
    2
    @Luiso 当然,可以看看我的回答,其中会给你一些需要开始的链接:https://dev59.com/ql4d5IYBdhLWcg3wLf4g#32532323 - SMKS
    显示剩余10条评论

    21

    2018年更新

    安装VirtualBox https://www.virtualbox.org/

    在VirtualBox上安装MacOS 10.13 https://techsviewer.com/install-macos-high-sierra-virtualbox-windows/

    在Mac上创建或登录苹果账户

    安装XCode 9.0 https://download.developer.apple.com/Developer_Tools/Xcode_9/Xcode_9.xip

    启用远程登录 系统偏好设置 > 共享 > 远程登录 > 启用所有用户

    使用额外的网络适配器(仅限主机)来配置VirtualBox

    在Windows > Visual Studio(Xamarin项目)> 配对 Mac

    输入第二个网络适配器的IP地址

    让Visual Studio在Mac上安装Xamarin IOS、IOS SDK和其他工具

    设置完成。


    你真的尝试过这个并且它能正常工作吗?在浪费我们的时间之前先确认一下 :D - Emil
    1
    @Ateik,你是什么意思?你的意思是即使使用你的电脑配置,它仍然很慢? - Emil
    是的,根据提到的规格,编译一个Hello World应用程序和运行iOS模拟器都比较慢。 - Ateik
    2
    很抱歉听到这个消息,但我的设置中没有性能问题。我为我的VirtualBox macOS机器分配了4GB的RAM和2个处理器。主机系统:Core i7 2.4GHz 4核心,32GB RAM。在这里它完全可用,但当然这是某种类型的黑客/解决方法。最好还是购买一台Mac。 - Verthosa
    你只需要一颗12核的英特尔CPU和32GB DDR5内存就可以导出一个该死的IPA :) - pouya
    显示剩余4条评论

    8

    1
    这是一种付费解决方案,使用云端Mac进行Xamarin IOS构建的教程链接,请参考https://www.c-sharpcorner.com/article/how-to-test-our-xamarin-ios-or-xamarin-forms-app-without-a-mac/。 - Abubakar Riaz
    是的,这是付费的,但最便宜的计划只需30美元。甚至比最便宜的翻新Mac还要便宜得多。据我所知,我每个月只需要使用几个小时的Mac来进行最终构建,然后发布。问题:我需要在Mac上拥有管理员权限才能为iOS进行构建吗?也就是说,我需要购买具有完整管理员/根访问权限的计划吗?假设我拥有Visual Studio Enterprise 2019和功能强大的Windows 10桌面,哪种MacInCloud计划最适合用于Xamarin应用程序的iOS最终构建?(按使用量付费、托管服务器、专用服务器、Azure代理) - Alt-WN

    1
    任何人都知道虚拟机是解决方案!但当你想在Windows上安装OSX时,这并不像你所说的那么容易。找到最好的操作系统ROM非常重要。 看看这里。 你必须知道限制是苹果造成的,而不是Xamarin的。

    1

    作为开发了3个Xamarin Forms应用程序的人,我想谈一些关于选项的观点:

    与虚拟Mac配对(VMWare、VirtualBox或云)

    我曾经这样工作过一段时间,但虚拟机消耗大量硬件资源。付费一个月使用远程Mac,但配对和调试过程并没有得到很大的改善。

    在虚拟macOS中开发

    我一直使用这个选项,并取得了良好的结果。我只是在macOS VMware虚拟机上运行所有东西。Visual Studio和模拟器有点慢(我的CPU是i5和8GB内存),但可以接受进行一些调整。优点:避免配对,使用Xcode编辑某些资源,发布。

    在Windows PC上安装macOS

    这是前面建议的升级版。还没有测试过,但如果它能够正常工作,性能应该比VMWare更好。他们称之为Hackintosh,如果您的硬件兼容,则可能实现。


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接