如何使用Windows开发机器进行iPhone开发?

有没有办法在Windows机器上修补iPhoneSDK?是否有计划为Windows提供iPhoneSDK版本?

我能想到的唯一其他方法是在Windows上运行的VMware服务器上运行Mac VM映像,尽管我不太确定这有多合法。

1134020 次浏览

在Windows机器上开发当然是可能的,事实上,我的第一个应用程序是专门在我当时拥有的旧戴尔精密上开发的:)

有三条路线;

  1. 在第二个分区/磁盘上安装OSx86(又名iATKOS/Kalyway)并双启动。
  2. 在VMWare下运行Mac OS X Server(Mac OS X 10.7(Lion)及以上版本,请阅读下面的更新)。
  3. 使用允许在Windows上开发的框架和/或工具集,例如带有云端服务的Delphi XE4,无需MacOS设备即可构建。这是一个商业工具集,但组件和库支持正在增长。

    其他值得一提的是FlutterXamarin和类似的;最终可能需要实际的MacOS设备进行最终构建(但在此之前您可以在Android上进行测试,因为它们是跨平台的)。

第一种方法需要修改(或使用预先修改过的)Leopard映像,该映像可以安装在普通PC上。这并不像你想象的那么难,尽管你的成功/努力比率将取决于你的PC中的硬件与Mac硬件的匹配程度——例如,如果你在英特尔主板上运行酷睿2 Duo,使用NVidia显卡,你会笑。如果你运行的是AMD机器或没有SSE3的东西,它会变得更加复杂。

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

第二种选择成本更高。Leopard工作站版本的EULA阻止它在仿真下运行,因此,VMware中不支持这一点。然而,Leopard服务器可以在仿真下运行,可以用于桌面目的。然而,Leopard服务器和VMware很昂贵。

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

我认为你应该考虑一下你投入的时间是否值得你节省的钱。这是为了我,因为我喜欢摆弄这种东西,我在iPhone早期开始测试,几个月前他们的应用商店上市。

或者,您可以从eBay购买低规格的Mac Mini。运行SDK不需要太多马力,如果您决定停止开发或购买更好的Mac,您可以随时出售它。

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

您可以使用WinChain

引用项目页面:

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

该SDK仅在OS X上可用,迫使您使用mac。如果您不想购买mac,您可以在windows box上的虚拟机上运行OS X,也可以在PC上安装OS X。

根据我的经验,虚拟机解决方案非常慢(在带有2G RAM的core2 Duo笔记本电脑上)。如果你想尝试一下,请搜索种子。这可能不值得。

另一种选择是在你的PC上安装OS X,通常被称为hackintosh。Hackintosh运行得很好——我的朋友刚刚卖掉了他的mac,因为他的戴尔四核hackintosh实际上比苹果硬件快得多(成本约为1/3)。

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

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

尽管瓦尔迪兹先生说这是一个灰色地带(确实如此),但越狱非常容易,几乎没有风险。是的,它使你的保证书失效,但你可以做一次恢复,他们永远不会知道。

看看这个:

在视图

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

话虽如此,我还没有尝试过。这个项目看起来很测试,在他们的SourceForge网站上没有很多活动。

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

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

如前所述,您可以尝试使用WinChain,但如果您是新手编码器,那就不容易了。

iPhoneSDK将在Hackintoshes(安装了OS X的普通PC)上运行。我知道我有一个,它确实如此。

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

您很快就可以使用Adobe Flash CS 5Windows上的iPhone创建应用程序:

闪存5

适用于iPhone的Flash CS5应用程序

Xamarin是一个可靠的选择。它被微软购买,现在直接构建到Visual Studio中。你用C#编写代码。随着他们添加的所有更新和功能,你可以做任何事情,但从Windows提交到App Store,甚至编译、构建和部署到iOS设备。

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

其他选项:

PhoneGap(html/javascript)也可以。它不太适合游戏,但对于常规GUI应用程序来说非常不错。

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

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

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

您可以在Windows上使用Sentza为iPhone制作应用程序。测试成功。这不是一个解决方案,而是一个很好的选择!

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

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

其他可能性是交叉编译器,例如Appcelerator钛(超文本标记语言,CSS和JavaScript)或MonoTouch(. NET)。

您可以尝试使用超文本标记语言,JavaScript,CSS为iPhone开发Web应用程序。

还有两个选择

  1. 钛开发者-免费社区版-用超文本标记语言/JavaScript编写-用Xcode编译(需要Mac或VM)

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

我认为这些和其他提到的一些可能有“工具链”选项,允许您在Windows上编译为二进制文件,我已经看到您可以上传zip文件并在线为您完成工具链样式的编译,但这违反了Apple许可。

如果我没弄错的话,一个产品,如钛输出/与Xcode一起工作,不使用任何第三方/替代/受限库应该是合规性的,因为你最终编译的是xcode——普通的Objective-C代码和库。

你不需要拥有Mac,也不需要学习Objective-C。你可以在不同的环境中开发,然后编译成Objective-C。

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

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

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

尝试macincloud.com它允许您租用Mac并通过RDP遥控器访问它。然后,您可以使用您的PC访问Mac,然后开发您的应用程序。

如果您对Mac有ssh访问权限,那么您可以使用VNC(如Vine VNC,它允许一次多次使用-瘦瘦客户端)来控制XCode。

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

查看NS Basic/App Studio。它是iPhone的Visual Basic。(尽管您也可以用JavaScript编写代码)。它生成的WebApps可以在不通过App Store的情况下分发。应用程序也可以在其他平台上运行,例如Android。 NS Basic/App Studio

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

iOS构建环境查看

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

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

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

Adobe有创建编译器从ActionScript 3到iOS编程。后来苹果批准这种应用程序创建方法。

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

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

这是小于最佳解决方案。

恕我直言,最明智的商业方式是将钱投资于Apple认可的框架。这样,如果您发现自己陷入了一些令人难以置信的问题,您可以咨询更大的开发人员社区。

还有Sencha Architect煎茶触摸来自制作Ext JS的公司。

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

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

还有很多时候,他们让你在另一种语言中简单地使用Objective-C等价语句。它们看起来有点相同,但总是有细微的差异,你必须在obj-c之上学习。这也更没有意义,因为现在不是学习更少,而是学习更多。那么收益在哪里?他们也花了很多钱,因为他们很难开发。

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

在我看来,如果你是一个铁杆iOS开发人员,那么肯定会购买最好的Mac并学习Objective-c。这很昂贵并且需要时间,但如果这是你的道路,那就值得了。

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

您可以在WINDOWS PC上开发IPHONE应用程序。我已经完成了,使用复杂的应用程序。它工作得很好。您可以在没有看到Mac或iPhone的情况下开发iPhone应用程序。

你可以在windows上开发一个超文本标记语言(或者更好的:HTML5)应用程序,使用Sencha、JQTouch或mobi1等工具。

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

但是你需要iphone开发者许可证才能在iphone上安装它。但你随时都不需要Mac或iphone来编译、构建或测试它——所有这些都在PC上完成。

我已经完成了,它工作得很好。(但具有Android类型的响应能力-不如原生iPhone应用程序快)

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

然后是Xamarin。您在C#中开发,并对本机代码进行特殊调用。您必须学习环境。

如果你想在Windows环境下研发App,那么有一个选项,你可以在你的Windows平台上安装MAC OS,名称是:“Niresh'MAC OS”,你可以在谷歌上搜索该文本

然后您可以下载整个MAC OS Source并轻松地在您的Windows PC中安装MAC OS,Niresh能够破解整个操作系统。

希望这对你有帮助。

您可以在PC上安装OSX,但体验不会很好,而且需要大量工作。替代方案是使用框架/SDK代号一:它基于JAVA,可用于在WP8、AndroidiOSWindows(eclipse)中编码,具有所有广泛的功能

功能概述:

  1. 具有超快速Android模拟器的完整Android环境
  2. iPhone /iPad模拟器,可在几分钟内将iPhone应用程序带到大屏幕iPad。
  3. 完全支持标准java调试,分析任何平台上的应用程序。
  4. 轻松的主题/造型-只需点击一下

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

万岁!您现在可以使用最新的Xamarin. iOS更轻松地完成此操作,使用网络链接的mac提供构建和部署功能。

更多详情见这里:

Visual Studio的xamarin ios简介

这是一个新工具:氧基因,您可以使用它为iOS /Mac,Windows RT/8或Android构建应用程序。它使用源自Object Pascal和Visual Studio的特定语言(并使用. net或java。)。它似乎非常强大,但不是免费的。

所以坏消息是,它的iOS模拟器及其应用程序加载器功能需要XCode才能将程序上传到iOS设备进行“真正”测试。在提交到App Store之前,您需要XCode来签署您的应用程序。不幸的是,XCode仅适用于OS X。

然而,好消息是,你可能能够购买OS X并在虚拟机中运行它,例如VMware工作站。我不知道这有多简单,因为让OS X在非Apple硬件上运行是相当困难,但快速的google搜索表明这是可能的。这种方法(可能)比购买新Mac便宜,尽管mac mini在美国的零售价仅为599美元。我看到的一些帖子表明这可能是合法的,也可能是不合法的,其他人说你需要OS X Server进行虚拟化。我会把研究留给你。

还有一些服务,例如MacInCloud,允许您租用Mac服务器,您可以通过远程桌面或浏览器从Windows访问该服务器。不幸的是,我认为您无法使用Application Loader,因为您必须将设备物理连接到您的计算机,但它至少可以用于开发和模拟。

祝你好运!

请查看Xamarin。它们有一个Visual Studio扩展(http://xamarin.com/visual-studio)。

摘自他们的网站:

Xamarin提供Visual Studio加载项,以便您可以在单个解决方案中开发iOS、Android和Windows应用程序。Xamarin扩展支持在模拟器或设备上构建、部署和调试。

您可以使用intelxdk,您可以在没有Mac的情况下为iOS开发和发布应用程序。

点击这里的细节。

正如许多人已经回答的那样,iPhoneSDK仅适用于OS X,我相信Apple永远不会在Windows上发布它。但是有几个替代环境/框架允许您开发iOS应用程序,甚至使用Windows机器和MAC打包并提交到AppStore。以下是最受欢迎和相对更好的选择。

PhoneGap,允许使用超文本标记语言/CSS/JavaScript创建基于Web的应用程序

Xamarin,C#中的跨平台应用程序

adobeair,使用Flash/ActionScript的空气应用程序

Unity3D、跨平台游戏引擎

备注: Unity需要Xcode,因此OS X需要构建iOS项目。

(准确截至2014年底)

要访问本机工具(Xcode等),有两个主要选项:

1.虚拟机

四处寻找与修改后的Vmware Workstation/Player一起使用的mavericks(10.9)vmware映像。一旦机器能够启动,它就可以更新到10.9.5而没有明显的问题。

好的:相对较低的学习曲线(如果你对vms有点熟悉)

坏的:虚拟化环境导致性能下降,没有3d加速(QE/CL)

2. Hackintosh

如果您计划采购新硬件(或至少部分),而不是改装现有设备,这是明智的选择(但您可能很幸运拥有其中一个常见的OEM型号(如戴尔),已经为其编写了配方)

好的:对硬件性能没有任何影响,甚至可能超过真正的mac。如果您对多引导持开放态度,相同的硬件也可以用于其他操作系统

坏的:更高的学习曲线,更多的硬件限制(某些英特尔wifi等没有驱动程序),如果您最初无意获得新硬件,这可能会转化为更高的投资

不用说,水果公司不赞成上述两种选择,因此许可合规不是讨论的一部分。

3.实际的mac(2016年添加)

此选项非常适合已经拥有mac并通过BootCamp等将其用作Windows开发机器的人,这也具有最少的支持问题(除了可能导致多次启动的并发症),因此建议那些寻求长期解决方案的人(硬件不仅适用于当前OSX版本,还适用于未来版本)

B4i是一个新的开发工具,用于创建本地iOS应用程序。它在Windows上运行。当需要完整编译时(在大多数情况下不需要),项目会在托管构建器上编译。每次编译大约需要5秒。B4i

如果你想创建iPhone应用程序,但没有Mac,那么你应该尝试http://www.pmbaty.com/iosbuildenv/

它允许您轻松开发本地iOS应用程序,例如XCode,可部署在任何iPhone,iPod或iPad(越狱与否)上。

使用您喜欢的IDE在Objective-C、C++、C或ARM程序集中进行编码,就像在XCode中一样。支持ARC和块。

直接在Visual Studio中编译iPhone应用

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

现在支持iOS8。

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

我尝试过所有这些方法,它们都有利弊,但对于第二组,我感到有点内疚。我开发应用程序是为了谋生,我不想为此敲诈别人。

如果你正在做一个小项目,基于云的Mac可能会很有用。短期租用它,开发你的项目,然后你就可以走了。不要费心学习任何新东西。

但是,如果你的项目越来越大,跨平台框架似乎是唯一的选择,关键的是你需要明智地选择。混合框架那么多,但它们的作用用一句话概括就是“在app包装器中制作网页”,开发者使用混合框架的负面体验也会影响原生框架。

我尝试了其中的三个(钛,Smartface和Xamarin),它们都声称能够产生“真正的原生输出”,在我看来它们的说法是正确的。你需要自己测试并看到它,描述原生的感觉并不容易。在之前的评论中,有人表示学习这些平台需要一些努力,但是一旦你了解它们,你不仅可以开发iOS应用程序,还可以开发Android应用程序,所有这些都使用通用的代码库。当然,它们比云Mac便宜得多。其中一些甚至是免费的。你只需要一台Mac来提交商店提交。

如果你懂JavaScript,那就试试钛合金和Smartface,如果你懂C#,那就试试Xamarin。请注意,对于设备模拟程序,钛合金依赖于Mac,但Smartface有一个用于Windows开发的模拟器应用程序,它的效果比我预期的要好。另一方面,Xamarin需要在您的网络中使用Mac。

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

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

签署并发布需要Apple系统的应用程序

找到参考这里

我查过参考资料了没什么可疑的

Visual Studio+Xamarin将完成这项工作。

Visual Studio

然而,我建议你买一台Mac,用Xcode开发iOS应用程序。

在罗马,像罗马人一样生活。

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

跨平台工具非常棒:只需编写一次应用程序代码,然后将其导出到iOS和Android。这可能会将您的应用程序开发时间和成本减半。一些跨平台工具允许您在Windows PC上开发iOS应用程序,或者允许您在本地网络中有Mac的情况下编译应用程序。

别那么快…

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

中景由PhoneGap、Cordova、Ionic和Appcelerator等工具覆盖,可让您使用HTML5组件构建本机应用程序。远端包括React Native等较小的平台,允许您使用JavaScript包装器编写本机应用程序。

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

大多数跨平台工具都要求您对编程、编译选项以及iOS和Android生态系统有基本的了解。这是您作为初学者开发人员并不真正具备的东西!

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

如果您熟悉基于Windows的开发工具和IDE,并且如果您已经知道如何编码,那么查看Xamarin是值得的。使用Xamarin,您可以使用Mono和MonoTouch框架在C#中为多个平台编写应用程序。如果您熟悉基于Web的开发,请查看PhoneGap或Ionic。您会对超文本标记语言5、CSS和JavaScript感到宾至如归。不要忘记:本机应用程序的工作方式与网站不同…如果您熟悉JavaScript,或者如果您更愿意学习JavaScript而不是Swift,请查看React Native。使用React Native,您可以使用“包装器”为iOS和Android编写本机应用程序。总是故意选择跨平台工具,因为这是一个明智的选择,而不是因为你认为本地平台语言不好。一个选项不对的事实不会立即使另一个选项更聪明!

如果你不想加入专有的封闭苹果世界,不要忘记许多跨平台工具都是由同样邪恶的公司运营的,如谷歌、Facebook、微软、Adobe和亚马逊。

一个经常听到的反对跨平台工具的论点是,它们对智能手机硬件的访问和支持有限,并且不如原生工具“敏捷”。请记住,任何跨平台工具都需要您一次性编写特定于平台的代码,特别是如果您想编写自定义功能。

我使用Flutter。我在我的Windows机器上开发并在Android模拟器上测试。当我准备好在iOS上测试时,我在macOS上运行代码。根据我的经验,Flutter应用程序在Android和iOS上运行完全相同。如果你没有Mac,你可以下载VirtualBox并在其上安装macOS。在VirtualBox上,macOS的运行与真正的Mac上完全相同,你可以在上面构建你的应用程序。

创建一个Web应用程序。iOSWeb应用程序是:

  1. 可靠。更新所需的时间远远短于XCode。
  2. 快。iOS上的JavaScript本质上比本地应用程序快得多。
  3. 免费。你永远不必向苹果支付一分钱,因为苹果对你没有任何控制权。
  4. 更安全。如果本地应用程序发生崩溃,它甚至可以关闭最新的iOS设备几个小时甚至几天,直到用户可以修复它们。如果Web应用程序崩溃,用户只需关闭并重新打开它,最坏的情况。
  5. 离线。您可以轻松创建一个服务工作线程来处理您的应用程序。
  6. 安全。由于您无权访问本机API,因此安全漏洞的危险性要小得多。
  7. 易于编程。一个基本的iOSWeb应用程序可以从iPhone上的SafariURL栏进行编程。

您可以使用Java为iPhone制作应用程序,Java可以连接到Web。