如何使用 Windows 开发机为 iPhone 开发?

有什么办法可以在 Windows 计算机上修补 iPhone SDK?是否有针对 Windows 的 iPhone SDK 版本的计划?

我可以想到的唯一另一种方法是在 Windows 上运行的VMWare服务器上运行 Mac VM 映像,尽管我不太确定这样做的合法性。

答案

当然可以在 Windows 机器上进行开发,实际上,我的第一个应用程序是在当时的旧 Dell Precision 上独家开发的:)

有三条路线;

  1. 在第二个分区 / 磁盘上安装OSx86 (又名 iATKOS / Kalyway)并进行双引导。
  2. 在 VMWare 下运行 Mac OS X Server(从 Mac OS X 10.7(Lion)开始,请阅读下面的更新)。
  3. 使用 Delphi XE4 和 macincloud 服务。这是一个商业工具集,但是对组件和库的支持正在增长。

第一条路线要求修改(或使用预先修改的)可以安装在常规 PC 上的 Leopard 映像。尽管您的成功 / 努力比率将取决于您的 PC 硬件与 Mac 硬件的匹配程度,例如,如果您要在配备 NVidia 的 Intel 主板上运行 Core 2 Duo,这并不像您想的那样难。您在笑的图形卡。如果您运行的是 AMD 机器或没有 SSE3 的机器,那么它会涉及到更多。

如果您购买(或已经拥有)Leopard 版本,则此区域为灰色区域,因为 Leopard EULA 声明您只能在 “Apple Labeled” 计算机上运行它。许多人指出,如果您在 PC 上贴了 Apple 标签,您可能会被覆盖。

第二种选择更昂贵。 Leopard 工作站版本的 EULA 阻止了它在仿真下运行,因此,VMWare 中对此不提供任何支持。但是,Leopard 服务器可以在仿真下运行,并且可以用于桌面目的。但是,豹服务器和 VMWare 昂贵。

如果您对选项 1)感兴趣,建议您从Insanelymac开始阅读 OSx86 部分。

我确实认为您应该考虑将花费的时间是否值得您节省的钱。这对我来说是因为我喜欢修补这类东西,而且我是在 iPhone 早期的 Beta 测试版(即 App Store 推出前几个月)开始的。

或者,您可以从 eBay 购买低规格的 Mac Mini。您不需要太多的能力来运行 SDK,并且如果您决定停止开发或购买更好的 Mac,则可以在以后出售它。

更新:您无法为 OS X 10.6 及更早版本创建 Mac OS X 客户端虚拟机。 Apple 不允许对这些客户端操作系统进行虚拟化。从 Mac OS X 10.7(Lion)开始,Apple 更改了有关虚拟化的许可协议。资料来源: VMWare 知识库

Xamarin是一个不错的选择。它由 Microsoft 购买,现在直接内置到 Visual Studio 中。您使用 C#编写代码。利用他们添加的所有更新和功能,您可以执行所有操作,但可以从 Windows 提交到 App Store,甚至可以编译,构建和部署到 iOS 设备。

对于游戏, Unity 3D是一个不错的选择。该编辑器可免费用于开发甚至分发(如果您的年收入少于 10 万美元)。 Unity 支持 iOS,Android 和大多数其他平台。可以使用 Unity 的 “云构建” 功能来避免必须使用 Mac 进行部署,尽管默认情况下,Unity 实际上在为 iOS 构建时会吐出一个 Xcode 项目。

其他选项:

PhoneGap (html / javascript)也可以使用。它对游戏来说并不是很好,但是对于常规的 GUI 应用程序来说却相当不错。

Flutter (dart)是 Google 提供的免费跨平台移动应用开发框架。用 Dart 编写代码。

React Native (javascript)是 Facebook 创建的另一个流行的跨平台框架。

请注意:对于所有这些选项,所有或大部分开发都可以在 Windows 上完成,但是仍需要 MacOS 设备来构建二进制文件以提交到 App Store。一种选择是获得便宜的 MAC Mini 来完成最终构建。

如果您有越狱的 iPhone,则可以通过 Cydia 将iphone-gcc 工具链安装到 iPhone 上,这样就可以在 iPhone 上编译应用程序。以这种方式开发的应用程序仍可以提交到 App Store。

尽管瓦尔迪兹先生说这是一个灰色地带,但越狱非常容易,而且几乎没有风险。是的,这会使您的保修失效,但是您只能进行恢复,他们永远不会知道。

大多数 “所谓的无 Mac 的 iOS 开发 Windows 解决方案” 最后都要求 Mac 签名并发送到应用商店。我检查了一些,但不是全部(谁有时间?)

最后,学习 “他们的超级特殊的简单方法,无需使用 Objective-C 对 iOS 进行编程” 就太麻烦了,它们有很多错误。在我看来,他们设定的目标确实是无法实现的。

很多时候,它们使您仅使用另一种语言来使用 Objective-C 等效语句。它们看起来相同,但是在 obj-c 之上始终需要学习一些细微的差异。这也变得毫无意义,因为现在您必须学习更多,而不是学习更少。那么收益在哪里呢?另外,它们非常昂贵,因为它们很难开发。

许多都缺乏任何调试能力。

坦白地说,如果您是 iOS 的核心开发者,那么请确定购买最佳的 Mac 并学习 Objective-c。这很昂贵并且需要时间,但是如果这是您的目标,那是值得的。

对于偶尔的使用,租用远程 Mac 服务(如XCodeClub.com)更容易

该 SDK 仅在 OS X 上可用,迫使您使用 Mac。如果您不想购买 Mac,则可以在 Windows 框的虚拟机上运行 OS X,也可以在 PC 上安装 OSX。

以我的经验,虚拟机解决方案的速度异常缓慢(在配备 2G 内存的 core2 duo 笔记本电脑上)。如果您想尝试一下,请搜索种子。这可能不值得。

另一种选择是在您的 PC 上安装 OS X,通常称为 hackintosh。 Hackintoshes 的效果很好 - 我的朋友刚刚卖出了 Mac,因为他的 Dell 四核 hackintosh 实际上比 Apple 硬件快得多(成本约为 1/3)。您可以找到许多有关如何执行此操作的文章。这是有关如何在 Dell Inspirion 1525 笔记本电脑上安装的方法: hackbook 专业教程

当然,这两种选择都可能与某些许可计划背道而驰,因此,后果自负。

您可以使用WinChain

引用项目页面:

这是在 Windows XP / Vista 计算机上构建 iPhone 工具链的最简单方法,而 Windows XP / Vista 计算机可以使用您使用其 UIKit 标头(包含在 winChain 中)编写的 Objective-C 源代码,并将其编译为可以使用的应用程序在您的 iPhone 上。

您不需要拥有 Mac,也不需要学习 Objective-C。您可以在不同的环境中进行开发,稍后再编译为 Objective-C。

通过运行 osx 10.6(雪豹)为 iPhone 和 iPad 开发

我们的一位开发人员写的这篇文章详细介绍了如何使用 iBoot 在 Windows 上安装 OS X Snow Leopard,然后安装 Vmware(带有说明),让 iPhone 开发人员环境运转…… 以及一些多汁的事情。超级对我有帮助。

希望能有所帮助。它使用 Phonegap,因此您可以一次在多个智能手机平台上进行开发。

您可以使用Tersus (免费,开源)。

一个开发工具包,允许您使用 Visual Studio 用Objective-C, C++或仅使用纯 C Objective-C, C++开发 iPhone 应用程序:

iOS build env 上查看

您可以直接在 Visual Studio(2008、2010,Express)中构建 iPhone 应用程序。

非常简洁,成功编译后,它甚至可以为您的应用程序构建IPA文件。该代码的工作原理与越狱设备相同,对于地球的其余部分,我认为最终的编译和提交到 App Store 的操作必须在 Mac 上完成。但是,它仍然使您能够使用著名的 IDE 进行开发。

当然,您可以在记事本或其他程序中编写 Objective-C 代码,然后将其移至 Mac 进行编译。

但严重的是,这取决于您是开发要放入 App Store 的官方应用程序还是为越狱的 iPhone 开发应用程序。要编写正式应用程序,需要 Intel Mac 的 Apple iPhone SDK 似乎是唯一实用的方法。但是,有一个非正式的工具链可以为越狱的 iPhone 编写应用程序。您可以在 Linux 和 Windows(使用 Cygwin)上运行它。