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


有没有办法在Windows机器上修改iPhone SDK?是否有针对Windows的iPhone SDK版本的计划?

我能想到的唯一另一种方法是在a上运行Mac VM映像 VMWare的 在Windows上运行的服务器,虽然我不太确定这是多么合法。


1081


起源


Mono的Miguel de Icaza张贴了 在iPhone上使用和编译Mono(.NET Framework的Linux端口)。 - Jon Limjap
怎么样 macincloud.com ? :) - Salman Abbas
您可以使用Unity3D。只需1次开发,您就可以开发适用于所有移动平台。 - ababab5
或者不要试图在Windows上运行它:购买翻新的“Mac mini”。 apple.com/shop/browse/home/specialdeals/mac/mac_mini  或谷歌“购买翻新的mac mini”。连接现有的显示器,并使用无线键盘和鼠标(我使用罗技,使用他们的Unify USB接收器)。 - ToolmakerSteve
Phonegap(简单的非原生应用程序)提供了一种云编译器服务,可以将您的应用程序打包到包括iPhone在内的多种手机上。 build.phonegap.com 所有开发都在PC上完成。我还没有用过它,但在阅读了这些替代品之后,我就要这么做了。 - Chloe


答案:


它当然可以在Windows机器上开发,事实上我的第一个应用程序是在我当时使用的旧Dell Precision上开发的:)

有三条路线;

  1. 安装 OSX86 (又名iATKOS / Kalyway)在第二个分区/磁盘和双启动。
  2. 在VMWare下运行Mac OS X Server(Mac OS X 10.7(Lion)以后,请阅读下面的更新)。
  3. 使用Delphi XE4和macincloud服务。这是一个商业工具集,但组件和lib支持正在增长。

第一条路线需要修改(或使用预先修改过的)Leopard图像,该图像可以安装在普通PC上。这并不像你想象的那么难,虽然你的成功/努力比将取决于你的PC中的硬件与Mac硬件中的硬件有多接近 - 例如如果您在英特尔主板上运行Core 2 Duo,使用NVidia显卡就会笑。如果您正在运行AMD机器或没有SSE3的东西,它会更多地参与其中。

如果您购买(或已经拥有)Leopard版本,那么这是一个灰色区域,因为Leopard EULA声明您只能在“Apple Labeled”机器上运行它。正如许多人指出的那样,如果你在电脑上粘贴一个Apple贴纸,你可能会被覆盖。

第二种选择是成本更高。工作站版Leopard的EULA可以防止它在仿真下运行,因此VMWare不支持此操作。但是,Leopard服务器可以在仿真下运行,可以用于桌面目的。但是,Leopard服务器和VMWare价格昂贵。

如果你对选项1)感兴趣,我会建议你开始 远景 并阅读OSx86部分。

我认为你应该考虑一下你投资的时间是否值得你省钱。这对我来说是因为我喜欢修补这类东西而且我在早期的iPhone测试版中开始,几个月前他们的App Store才可用。

或者你也可以从eBay上购买低规格的Mac Mini。你不需要太多马力就可以运行SDK,如果你决定停止开发或购买更好的Mac,你可以随时将它卖掉。

更新:您无法为OS X 10.6及更早版本创建Mac OS X Client虚拟机。 Apple不允许将这些客户端操作系统虚拟化。随着Mac OS X 10.7(Lion)的推出,Apple已经改变了有关虚拟化的许可协议。资源: VMWare知识库


477



OSX在VM中运行,因此在理论上它是可能的。但是,有一些问题。为OSX获取虚拟机中的网络支持(我说的是VMWare) 非常 硬。而且,整个事情将会非常缓慢,我不认为这是抛出RAM的情况。 - Dmitri Nesteruk
@DennisPalmer我不推荐这个购买,因为廉价的英特尔酷睿2双核Mac迷你很慢,一般没有键盘+鼠标。我认为,对于650美元,你可以得到一个非常酷的Macbook(专业版或空中版),内存为4 Gb。 - Zakaria
我只想指出,只要你没有超过32 GB的RAM就可以免费使用VMWare ESX,你回答说运行VMWare非常昂贵:/ - Mr. King
来自taobao.com,您只需花费980元人民币即可购买Mac Mini。 - Will Wu
没有冒犯,但这听起来比它的价值更麻烦。旧款Mac在eBay上很便宜,可以很好地运行Xcode。 - sudo


Xamarin 现在是我的最高投票。由Microsoft购买并直接构建到Visual Studio中,并且能够使用C#以及它们添加的所有更新和功能,您可以在Windows上执行所有操作,甚至可以编译,构建和启动部署。您只需要Mac Mini作为部署服务器,但您永远不需要在其上编写任何代码。

对于游戏, Unity 3D 是我的首选。该编辑每年可获得高达10万的收入(非常适合独立开发)。 Unity 5+也完全解锁,甚至是免费版本。 Unity支持iOS,Android和大多数其他平台。对于iOS和MAC,只需获得最便宜的MAC Mini即可进行构建,但所有开发都可以在Windows上完成。

其他选择:

PhoneGap的 也有效,但我发现它对于游戏来说并不是那么好用,但对于常规的GUI应用来说它是相当不错的。同样,您需要使用Mac来签署和测试您的应用程序,并遵守Apple的使用条款。


156



有关PhoneGap和Marmalade的进一步评论,请参阅有关跨平台应用程序开发的此问题: 最佳跨平台移动应用开发工具 - Ignitor
Phonegap非常棒,但您无法在Windows PC上完全开发应用程序,只需在iMac上进行签名即可。除非您的应用程序属于HelloWorld,否则您需要进行测试和调试。 - Wytze
有一个名为的Visual Studio扩展 游牧 通过推动PhoneGap构建到云服务,它确实支持完全在您的PC上进行开发。 - Mark Cheverton
我不相信Marmalade已经免费,许可条款已经改变。 - Jamie
除非网络上有一些MAC PC,否则不能使用Xamarian


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

虽然Valdez先生说这是一个灰色地带(事实上),越狱非常容易,并且几乎没有风险。是的,它会使你的保佑无效,但你可以恢复,他们永远不会知道。


141



只是更新:越狱不再使您的保修失效,至少在美国不会 - sudo
@ 9000有源?虽然越狱不再违反DCMA(苹果从未强制执行过),并且可能会或可能不会使保证无效(它有目的地含糊不清),但它会违反EULA,而苹果将拒绝服务于越狱设备 support.apple.com/kb/HT3743 - Josh Hunt
如果使用iTunes - Restore将设备恢复到越狱前的状态,他们如何拒绝服务?他们无法发现它曾被越狱 - JoelFan
@JoelFan iOS可能和Android一样;一个'闪光的自动收报机'。它存储在NVRAM中并且每次递增 system 擦除,意味着可以检测它是否已经闪烁或生根。 iOS设备可能有相同的东西(事实上,如果他们不这样做,我会感到惊讶)。 - cybermonkey
我拒绝谷歌Valdez先生。如果有人可以告诉我们我有义务。 - Harry Ninh


大多数“没有Mac的iOS开发所谓的Windows解决方案”需要Mac才能签名并发送到应用程序商店。我查了几个,但不是全部(谁有时间?)

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

他们还会花很多时间使用另一种语言使用Objective-C等效语句。它们看起来一样,但总有一些微妙的差异,你必须在obj-c之上学习。这也没那么有意义,因为现在不是学习更少,你必须学到更多东西。那么收益在哪里? 他们也花了很多钱,因为他们很难发展。

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

老实说,如果你是一个核心的iOS开发者,那么一定要购买最好的Mac并学习objective-c。这是昂贵的,需要时间,但如果这是你的道路,那是值得的。

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


68



我不太熟悉PhoneGap来撰写评论,但我喜欢这个想法:用广泛的技术HTML5 + JavaScript编写的跨平台应用程序。 - Ignitor
[VirtualMacOSX.com] [1]计划进行xCode开发,从(截至目前)每月10美元起。我相信其他人也有。 [1]: virtualmacosx.com/index.php/xcode-plans - Prof. Falken
@ArtA。 xcodeclub.com现在比maincloud更多了。 - Anonymous Penguin
我不知道这项服务是否存在。我只是想探索和玩它并且即将放弃现在做所有这些疯狂的解决方法,但这更容易。棒极了! - Alex Beardsley
“现在[...]你必须学习更多。而且他们花了很多钱...... [...] ..... “买最好的Mac并学习目标-c。这很贵,需要时间[...]”结论:iOS开发在任何情况下都很昂贵并且需要时间。 ;) - MA-Maddin


您可以使用 WinChain

引用项目页面:

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


53



这是免费使用,您可以开发可以放在苹果商店的ios应用程序? - BlueShark
哎呀!!最新版本是在2007年12月3日????


SDK仅适用于OS X,强制您使用mac。如果您不想购买Mac,可以在Windows机器上的虚拟机上运行OS X,也可以在PC上安装OS X.

根据我的经验,虚拟机解决方案速度非常慢(在带有2G内存的core2 duo笔记本电脑上)。如果你想尝试搜索洪流。这可能不值得。

另一种选择是在PC上安装OS X,通常称为hackintosh。 Hackintoshes工作得很好 - 我的朋友刚卖掉他的mac,因为他的戴尔四核hackintosh实际上比苹果硬件快得多(成本约为1/3)。你可以找到很多关于如何做到这一点的文章;这是关于如何在Dell Inspirion 1525笔记本电脑上安装的方法: hackbook专业教程

当然,这两种选择都可能与某些许可方案背道而驰,因此请自担风险。


52



此答案中的链接已过时。有人可以更新吗? - ρss
hackintosh信息很容易过时,最好是关注专门用于该主题的网站(如dell模型的osxlatitude) - prusswan


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

通过运行osx 10.6(雪豹)开发iphone和ipad

我们的一个开发人员写的这篇文章给出了一个非常全面的介绍,在Windows上使用iBoot安装OS X Snow Leopard,然后安装Vmware(带说明),然后让你的iPhone开发环境......以及一些额外多汁的东西。对我有用。

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


25





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


20



不。对于本机应用程序,您仍然需要Mac来编译和部署。 - tensaix2j


你很快就可以使用了 Adobe Flash CS 5 为...创建应用程序 iPhone 上 Windows

flashcs 5

用于iphone的flashcs5应用程序


18



查看各个帖子 iphonedevelopment.blogspot.com/2009_10_01_archive.html 为什么这是一个坏主意。 - Steve Harrison


一个devkit,允许一个人开发iPhone应用程序 Objective-C, C++ 或者只是使用Visual Studio的纯C:

看看吧 iOS构建环境

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

非常整洁,甚至建立 IPA 编译成功后,您的应用程序的文件。代码在越狱设备上工作,对于地球的其他部分,我相信最终的编译和提交到App Store必须在Mac上完成。但是,它仍然允许您使用着名的IDE进行开发。


18