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


1185

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

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



1
TOS已更新和C#(其他语言中)现在被允许:macgasm.net/2010/09/09/...
jjxtra


3
您可以使用Unity3D。只需1个开发,您就可以为此开发所有移动平台。
ababab5 2014年

5
或不要打扰尝试在Windows上运行它:购买翻新的“ Mac mini”。 apple.com/shop/browse/home/specialdeals/mac/mac_mini 或Google“购买翻新的Mac mini”。连接现有的显示器,并使用无线键盘和鼠标(我使用Logitech,后者使用其Unify USB接收器)。
ToolmakerSteve

Answers:


502

当然可以在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知识库


OSX在VM中运行,因此从理论上讲是可能的。但是,有一些问题。在OSX的VM(我正在谈论VMWare)中获得网络支持非常困难。另外,整个过程将非常缓慢,我不认为这是向其扔RAM的情况。
Dmitri Nesteruk

@DennisPalmer我不建议您购买此产品,因为便宜的Intel Core 2 Duo Mac Mini速度很慢,而且通常不带键盘和鼠标。我认为只要650美元,您就可以买到具有4 Gb内存的非常酷的Macbook(专业版或空中版)。
Zakaria

@Zakaria是的,在过去三年中发生了很多变化!购买Mac Mini时,我周围有很多键盘,鼠标和显示器,所以当时是个不错的选择。哦,我只花了360美元。很长一段时间没有购买过eBay上的二手Macbook,但这是一个很好的建议。
CoderDennis

12
我只想指出,只要您没有超过32 GB的RAM,就可以免费使用VMWare ESX,您回答说,运行VMWare非常昂贵:/
King先生

4
没有冒犯,但这听起来比它值得的麻烦更多。旧Mac在eBay上很便宜,并且可以很好地运行Xcode。
sudo 2014年

175

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来完成最终构建。


我正在使用Airplay开发跨平台游戏。好消息是,它们可能完全符合新的iPhone OS 4.0条款和条件。参见airplaysdk.com/node/672
hiddentao

7
Phonegap很棒,但是您不能完全在Windows PC上开发应用程序,然后只能在iMac上签名并希望获得最好的效果。除非您的应用程序属于HelloWorld,否则您确实需要测试和调试。
Wytze 2012年

4
有一个名为Nomad的Visual Studio扩展,它通过将PhoneGap构建推送到云服务来支持完全在PC上进行开发。
Mark Cheverton

3
我不认为橘子果酱是免费的,许可条款已更改。
杰米

3
除非网络上有一些MAC PC,否则无法使用

149

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

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


14
刚刚更新:越狱不再会使您的保修失效,至少在美国不会如此
sudo

3
@ 9000有货源吗?尽管越狱不再是违反DCMA的行为(无论如何苹果从未执行过),并且可能使保证无效(或者故意含糊),但确实违反了EULA,并且苹果将拒绝越狱的设备支持
乔什·亨特

1
如果您使用iTunes-Restore将设备恢复到越狱前的状态,他们将如何拒绝服务?他们无法检测到它曾经被越狱
JoelFan 2014年

2
@JoelFan iOS可能与Android具有相同的功能;一个“即时报价”。它存储在NVRAM中,每次system擦除时都会递增,这意味着可以检测它是否已被刷新或生根。iOS设备可能具有相同的功能(实际上,如果没有,我会感到惊讶)。
AStopher

6
我拒绝Google Valdez先生。如果有人可以告诉我们,我有义务。
哈里·宁

78

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

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

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

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

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

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


1
我对PhoneGap不够熟悉,无法撰写评论,但我喜欢这样的想法:使用广泛的HTML5 + JavaScript技术编写的跨平台应用程序。
Ignitor 2012年

1
[VirtualMacOSX.com] [1]有开发xCode的计划,(每月)起价为每月10美元。我相信其他人也有。[1]:virtualmacosx.com/index.php/xcode-plans
Falken教授的合同

我不知道该服务是否存在。我只是想探索并使用它,现在打算放弃所有这些疯狂的解决方法,但这要容易得多。大提示!
亚历克斯·比尔兹利

“现在,您必须学习更多。而且,它们的成本也很高。” ..... “购买最好的Mac并学习objective-c。它昂贵且需要时间[...] “结论:iOS开发是在两种情况下昂贵又费时。;)
Martin Schneider

55

该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专业教程

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


2
hackintosh信息很容易过时,最好跟踪专门针对该主题的网站(例如戴尔模型的
osxlatitude

53

您可以使用WinChain

引用项目页面:

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


1
所以这是免费使用的吗,您可以开发可放在Apple Store上的ios应用程序?
BlueShark,2015年

28

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

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

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

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



21

一种开发工具包,允许您Objective-C, C++使用Visual Studio 在纯C或纯C语言中开发iPhone应用程序:

iOS build env上查看

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

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


19

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

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





11

如果您希望它合法,则有两个选择,基于云的Mac解决方案或跨平台开发工具。如果您不关心合法内容,则可以考虑使用hackintosh方法或虚拟机。如果您有一台不错的PC,那么运行虚拟机将是最简单的方法。您可能永远都不知道hackintosh上哪个硬件会出现驱动程序问题。

我尝试了所有这些方法,它们都有优点和缺点,但是对于第二组,我感到内feel。我开发应用程序谋生,但我不想为此而someone幸。

如果您正在做一个小型项目,则基于云的Mac可能会有用。短时间租用它,开发项目,然后就可以使用。不要打扰学习任何新知识。

但是,如果您的项目越来越大,则跨平台框架似乎是唯一的选择。关键是您需要明智地选择。混合框架有很多,但是可以用“在应用程序包装中显示网页”的一句话来概括它们的作用,而开发人员对混合框架的负面体验也会影响本机框架。

我尝试了其中的三个(Titanium,Smartface和Xamarin),它们都声称产生“真实的本机输出”,并且我认为它们的主张是正确的。您需要测试一下,然后描述它,描述其原始感觉并不容易。在先前的评论中,它表明学习这些平台需要花费一些精力,但是一旦您了解了它们,就可以使用通用的代码库开发iOS应用程序和Android应用程序。当然,它们比云Mac便宜得多。其中一些甚至是免费的。您只需要Mac即可提交商店。

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


9

如果要创建iPhone应用程序但不创建Mac,则应尝试http://www.pmbaty.com/iosbuildenv/

它使您可以轻松地开发本机iOS应用程序,例如XCode,可在任何iPhone,iPod或iPad(无论是否越狱)上部署。

与XCode一样,使用您喜欢的IDE在Objective-C,C ++,C或ARM汇编中进行编码。支持ARC和块。

直接在Visual Studio中编译iPhone应用程序

它适用于Windows所有版本(XP,7、8),FreeBSD和Linux

现在支持iOS8。


3
根据SO政策,您能否透露与推荐站点的隶属关系?
塞伦斯

8

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

不过,这还不是最佳解决方案。

恕我直言,最明智的业务方式是将资金投资于苹果认可的框架。这样,如果您发现自己遇到了一些令人难以置信的问题,那么您可以咨询更多的开发人员社区。


8

您可以在WINDOWS PC上开发IPHONE应用程序。我已经完成了复杂的应用程序。而且效果很好。您可以开发iphone应用程序而无需看到mac或iphone。

您可以使用Sencha或JQTouch或mobi1之类的工具在Windows上开发HTML(或更好的HTML5)应用程序。(他们曾经有一段时间免费)

然后,您使用openSSL对应用程序进行签名。和Adobe PhoneGAP Build服务一起构建iPhone App。

但是您需要iphone开发人员许可才能将其安装在iphone上。但是您无需在任何时候都需要Mac或iPhone来编译,构建或测试它-所有这些操作都是在PC上完成的。

我已经做到了,并且效果很好。(但具有Android类型的响应能力-不如本地iPhone应用程序快)

您还可以使用巴比伦时代(约公元前300年)运行C和C ++的程序蜻蜓。如果您的应用具有一两个互动性有限的屏幕,并且计算量很多,那就去吧。它包括一个模拟器。按下按钮即可编译到iphone。(不确定,但我认为无论如何您都需要开发人员许可证)

然后是Xamarin。您使用特殊的本地代码调用以C#开发。您将必须学习环境。


好了,您可以使用PC开发应用程序,但是要为Apple Store商店创建数据包需要访问Mac或PC上的某些服务,这就是这一部分。尽管项目设置为Release build,但至少我没有将任何软件包下载到Release文件夹。
mico'2

8

看看这个:

俯瞰

这个项目试图将以多种源语言编写的程序交叉编译为多种目标语言。最初的测试用例之一是用Java编写程序并在iPhone上运行它们。在网站上观看视频是值得的。

话虽如此,我还没有尝试过。该项目似乎是beta版本,其SourceForge网站上没有很多活动。


这个项目似乎已经死了。该项目网站将其描述为“当前处于早期开发阶段”,自2014
。– duskwuff -inactive-


8

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

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


1
使用虚拟机是非法的,不是吗?
马丁·艾哈特

1
非法的方式不被赞赏
techieWings 2014年

2
绝对合法,当Windows作为Mac上的唯一系统运行时。
fb55

我有一个装有MacOS的虚拟机,但无法在真实设备上部署我的应用程序
EriK

7

另外两个选择

  1. Titanium Developer-免费社区版-使用HTML / JavaScript编写-使用Xcode编译(需要Mac或VM)

  2. OpenPlus ELIPS Studio –用Flex编写,在Xcode上编译(需要Mac或VM)–他们只是开始为其产品收费。

我认为可能会有“工具链”选项,以及上面提到的其他一些选项,这些选项使您可以在Windows上编译为二进制文件,而且我知道您可以上传zip文件并在线上为您完成工具链样式的编译,但这违反了Apple许可。

如果我没有记错,那么诸如Titanium之类的产品可以使用Xcode输出/使用并且不使用任何第三方/替代/受限库,则应该合规,因为您最终将使用xcode进行编译-常规的Objective-C代码和库。



6

如前所述,您可以尝试使用WinChain,但是如果您是新手,那将不是一件容易的事。

iPhone SDK将在Hackintoshes(安装了OS X的普通PC)上运行。我知道我有一个,而且确实有。

因此,购买OSX许可证后,您可以尝试使用Boot-132或iDeneb等其他安装程序将其安装在PC上的其他驱动器上。您将不得不做很多修补工作,但事情仍然无法正常进行。


6

现在使用Xamarin,我们可以借助Xamarin Live Player在Windows机器本身中开发iPhone应用程序

使用此Xamarin Live Player 开发/部署/调试周期现在,可以在没有Apple系统的情况下。

但是要签署和发布该应用程序,必须使用Apple系统

这里找到参考

我检查了参考没有什么躲闪


5

是的,您无需学习Objective-C并购买Apple软件和硬件。

Adobe 已从ActionScript 3 创建了可用于iOS的程序的编译器。后来苹果公司批准了这种应用程序创建方法。

这是在Windows或Linux / BSD(以及用于MacOS-X的另一种)下创建Apple应用程序的最佳方法。


4

您可以在PC上安装OSX,但经验不会很好,并且需要大量工作。替代方法是使用框架/ SDK 代号之一:它基于JAVA,可用于在Windows(日食)上的WP8,Android,iOS(具有Eclipse的所有功能)中进行编码

功能概述:

  1. 完整的Android环境以及超快速的Android模拟器
  2. 一个iPhone / iPad模拟器,可在数分钟内轻松将iPhone应用程序带到大屏幕iPad。
  3. 全面支持标准Java调试,可在任何平台上对应用程序进行性能分析。
  4. 简单的主题/样式-只需单击即可

使用Java 免责声明开发Android,iOS iPhone,WP8应用程序的更多信息:这是我对产品的评论


3

如果要在Windows环境上开发应用程序,则可以选择在Windows中安装MAC OS平台名称是:“ Niresh'MAC OS”,可以在Google上搜索该文本

然后您可以下载整个MAC OS源并在Windows PC中轻松安装MAC OS,Niresh可以破解整个OS。

希望这会帮助你。


3

使用跨平台工具在Windows上开发iOS应用

跨平台工具很棒:您只需编写一次应用程序,然后将其导出到iOS和Android。这有可能将您的应用程序开发时间和成本减少一半。几种跨平台工具可让您在Windows PC上开发iOS应用,或者,如果本地网络中有Mac,则可以编译该应用。

好吧,没那么快…

跨平台工具生态系统非常庞大。一方面,您拥有完整的集成开发环境(IDE),例如Xamarin,可让您使用C#构建跨平台应用程序。

诸如PhoneGap,Cordova,Ionic和Appcelerator之类的工具涵盖了中间立场,这些工具使您可以使用HTML5组件构建本机应用程序。远端包括较小的平台,例如React Native,可让您使用JavaScript包装器编写本地应用程序。

对于所有跨平台工具而言,突出的一件事是:它们对初学者不友好!与开始使用Xamarin相比,访问Mac,学习Swift和构建简单的应用程序要容易得多。

大多数跨平台工具都要求您对编程,编译选项以及iOS和Android生态系统有基本的了解。作为初学者,您实际上并没有这些!

话虽如此,让我们看几个选择:

如果您熟悉基于Windows的开发工具和IDE,并且已经知道如何编写代码,那么值得一试Xamarin。使用Xamarin,您可以使用Mono和MonoTouch框架在C#中为多个平台编写应用程序代码。如果您熟悉基于Web的开发,请查看PhoneGap或Ionic。使用HTML 5,CSS和JavaScript,您会感到宾至如归。别忘了:本机应用程序与网站的工作原理不同...如果您熟悉JavaScript,或者如果您想学习编码JavaScript而不是Swift,请查看React Native。借助React Native,您可以使用“包装器”为iOS和Android编写本机应用程序。始终故意选择跨平台工具,因为这是一个明智的选择,而不是因为您认为本机平台语言不好。一个选项不正确的事实并不能立即使另一个选项变得更聪明!

如果您不想加入专有的封闭Apple领域,请不要忘记,许多跨平台工具都是由同样邪恶的公司(如Google,Facebook,Microsoft,Adobe和Amazon)运营的。

反对跨平台工具的一个经常听到的争论是,它们对智能手机硬件的访问和支持有限,并且比其本机同类工具“贪婪”程度小。请记住,任何跨平台工具都需要您一次编写特定于平台的代码,尤其是在要编写自定义功能的代码时。


3

如果您具有对Mac的ssh访问权限,则可以使用VNC(如Vine VNC,它可以一次多次使用-瘦客户机)来控制XCode。

如果您想从笔记本电脑访问Mac Mini,或者您的MacBook正在占用MacBook,这可能会很有用。


2

您可以尝试使用HTML,JavaScript,CSS为iPhone开发Web应用程序。在Apple网站上查看入门信息。


我刚刚找到了一个名为MobiOne Studio的软件。如网站上所述:“ MobiOne Studio-具有iPhone仿真器的iPhone应用程序和Web应用程序设计器以及iPhone测试中心,使您能够在数分钟内(而不是几天)创建,自定义和运行iPhone用户界面。” 也许对您有帮助。链接:genuitec.com/mobile
Konstantin Grushetsky 2010年
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.