如何在Windows开发机上开发iPhone应用?

1266

有没有办法在Windows机器上调试iPhone SDK?是否有计划推出Windows版的iPhone SDK版本?

我能想到的另一种方法是在运行在Windows上的VMWare服务器上运行Mac VM映像,但我不确定这样做是否合法。


2
Mono的Miguel de Icaza发布了一篇关于在iPhone上使用和编译Mono(.NET Framework的Linux端口)的文章。 - Jon Limjap
27
那么http://macincloud.com怎么样? :) - salmatron
4
你可以使用Unity3D。只需进行一次开发,便可针对所有移动平台进行开发。 - ababab5
7
如果你不想费心在Windows上运行它的话,就购买一台翻新的“Mac mini”。可以访问http://www.apple.com/shop/browse/home/specialdeals/mac/mac_mini 或谷歌搜索“购买翻新的Mac mini”。连接你现有的显示器,使用无线键盘和鼠标(我使用的是Logitech的,使用他们的Unify USB接收器)。 - ToolmakerSteve
7
“只要买个苹果电脑”?我正在使用MacBook Pro,但我真的不喜欢在OS X上工作。我更愿意使用Linux。 - Richard de Wit
显示剩余11条评论
42个回答

18

试试macincloud.com吧,它可以让你租用Mac,并通过RDP远程控制进行访问。你可以使用你的电脑来访问Mac,并开发你的应用程序。


18

12

太好了!现在,使用最新的Xamarin.iOS,借助与网络连接的Mac提供构建和部署功能,您可以更轻松地完成此操作。

有关更多详细信息,请参见:

Visual Studio中Xamarin iOS的介绍


Xamarin 是一件令人头痛的事情。使用 Xamarin (.form / .iOS / .Android) 开发的应用程序性能较差。如果您打算选择跨平台开发,那么 React Native 是目前最好的选择(截至2023年)。 - Rizwan

11

如果您希望它合法,您有两个选择,云端Mac解决方案或跨平台开发工具。如果您不关心法律问题,可以考虑Hackintosh方法或虚拟机。如果您有一台不错的PC,运行虚拟机是最简单的方法。在Hackintosh上,您可能永远不知道哪些硬件会出现驱动程序问题。

我尝试了所有这些方法,它们都有优缺点,但对于第二种方法,我感到有点内疚。我开发应用程序谋生,我不想因此欺骗别人。

如果您正在制作一个小项目,云端Mac可能会很有用。租用它进行短期开发,然后离开。不要费心学习任何新东西。

但是,如果您的项目越来越大,跨平台框架似乎是唯一的选择。关键是您需要明智地选择。有太多的混合框架,但它们所做的可以总结为“在应用程序包装器中显示网页”,开发者的负面经验也影响本地框架。

我尝试过其中三个(Titanium、Smartface和Xamarin),它们都声称能够产生“真正的本地输出”,在我看来它们的声明是正确的。您需要亲自测试和观察,很难描述本地的感觉。在以前的评论中,有人指出学习这些平台需要一些努力,但是一旦您了解了它们,就可以开发不仅是iOS应用程序,还可以是Android应用程序,所有这些都使用相同的代码库。当然,它们比云端Mac便宜得多。其中一些甚至是免费的。您只需要一个Mac用于存储提交。

如果您了解JavaScript,请尝试Titanium和Smartface,如果您了解C#,请尝试Xamarin。只要注意,对于设备模拟器,Titanium依赖于Mac,但Smartface具有Windows开发的模拟器应用程序,并且效果比我预期的要好。另一方面,Xamarin需要在您的网络中有一个Mac。


10
如果你想制作iPhone应用但没有Mac电脑,那么你可以尝试使用http://www.pmbaty.com/iosbuildenv/,它可以让你轻松地开发本机iOS应用程序,就像使用XCode一样,在任何iPhone、iPod或iPad上都可以部署(无论是否越狱)。你可以在你最喜欢的集成开发环境中编写Objective-C、C++、C或ARM汇编代码,就像在XCode中一样。支持ARC和blocks。
你可以直接在Visual Studio中编译你的iPhone应用程序。
它可以在Windows所有版本(XP、7、8)、FreeBSD和Linux上运行。
现在支持iOS8。

3
根据 Stack Overflow 的政策,您能否在推荐网站时披露您的关联关系? - Allison

9

您可以使用Intel XDK开发和发布iOS应用程序,而无需使用Mac。

点击此处获取详细信息。


使用Intel XDK需要了解Objective C语言吗? - Alfonso Fernandez-Ocampo
XDK在2017年被停止使用,现在无法再使用。 - user149341

9

看看这个:

概览

这是一个试图能够将多种源语言编写的程序交叉编译到多种目标语言的项目。其中一个最初的测试案例是在Java中编写程序并在iPhone上运行它们。浏览该网站上的视频是值得的。

话虽如此,我还没有尝试过。该项目似乎相当于beta版本,并且他们的SourceForge网站上没有太多活动。


这个项目似乎已经停滞不前了。该项目网站描述它为“目前处于早期开发阶段”,自2014年以来,他们的源代码仓库中没有任何提交记录。 - user149341

8

Oracle VirtualBox 允许用户在虚拟机中安装 Mac OS X。如果您对此感到舒适,您可以使用这种方式来使用 Xcode。如果您将 Mac 双启动到 Windows 中,然后在 Windows(或 Linux)中安装 VirtualBox,则这是合法的。

其他可能性是跨编译器,例如 Appcelerator Titanium(HTML、CSS 和 JavaScript)或 MonoTouch(.NET)。


1
使用虚拟机是非法的吗?还是合法的? - Martin Erhardt
1
非法的方式是不被赞赏的。 - techieWings
2
当您的Mac上只运行Windows系统时,这绝对是合法的。 - fb55
我有一个带有MacOS的虚拟机,但我无法在真实设备上部署我的应用程序。 - EriK

8
你可以在Windows PC上开发iPhone应用程序,我已经做了这个,并且使用了复杂的应用程序。而且它完美地工作。你可以在没有见过Mac或iPhone的情况下开发iPhone应用程序。
你可以使用类似Sencha、JQTouch或mobi1之类的工具,在Windows上开发HTML(或更好的是HTML5)应用程序。(他们曾一度都是免费的)
然后使用openSSL对应用程序进行签名,再使用Adobe PhoneGAP Build服务来构建iPhone应用程序。
但你需要iPhone开发者许可证才能在iPhone上安装它。但编译、构建或测试它时不需要Mac或iPhone - 所有这些都是在PC上完成的。
我已经做到了,并且它完美地工作。(但响应速度像Android类型的应用程序一样-不如本机iPhone应用程序那么快)
你也可以使用公元前300年左右运行C和C++的古巴比伦时代程序称为Dragonfly。如果你的应用程序只有一两个屏幕,交互性有限,而且需要进行大量计算,请去尝试它。它包括一个模拟器。你按下一个按钮即可将其编译到iPhone上。(不确定,但在任何情况下我认为你都需要开发者许可证)
还有Xamarin。你可以使用C#开发,并使用特殊调用本机代码。你需要学习这个环境。

你可以使用电脑开发应用程序,但是构建一个适用于苹果商店的包需要访问 Mac 或从电脑外部获取某些服务来完成。至少我没有得到任何发布文件夹中的包,尽管项目被设置为发布版本。 - mico

8

有趣的是,没有人提到跨平台wxWidgets选项。

虽然它不是最理想的解决方案。

在我看来,商业上最明智的做法是投资于苹果认可的框架。这样,如果你发现自己陷入了一些令人费解的问题,你就有更多的开发者社区可以咨询。


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