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

时间:2008-08-22 13:35:02

标签: ios iphone windows

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

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

41 个答案:

答案 0 :(得分:489)

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

有三条路线;

  1. 在第二个分区/磁盘和双启动上安装OSx86(又名iATKOS / Kalyway)。
  2. 在VMWare下运行Mac OS X Server(Mac OS X 10.7(Lion)以后,请阅读以下更新)。
  3. 使用Delphi XE4和macincloud服务。这是一个商业工具集,但组件和lib支持正在增长。
  4. 第一条路线需要修改(或使用预先修改过的)可以安装在普通PC上的Leopard图像。这并不像你想象的那么难,尽管你的成功/努力比将取决于你的PC中的硬件与Mac硬件中的硬件有多接近 - 例如如果您在英特尔主板上运行Core 2 Duo,使用NVidia显卡就会笑。如果您正在运行AMD机器或没有SSE3的东西,它会更多地参与其中。

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

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

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

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

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

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

答案 1 :(得分:163)

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的使用条款。

Flutter是来自Google的免费跨平台移动应用开发框架。

答案 2 :(得分:145)

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

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

答案 3 :(得分:73)

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

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

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

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

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

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

答案 4 :(得分:54)

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 pro tutorial

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

答案 5 :(得分:53)

您可以使用WinChain

引用项目页面:

  

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

答案 6 :(得分:27)

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

developing for the iphone and ipad by runing osx 10.6(snow leopard)

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

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

答案 7 :(得分:21)

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

答案 8 :(得分:20)

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

iOS build env

上查看

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

非常简洁,它甚至可以在成功编译后为您的应用构建IPA个文件。代码在越狱设备上工作,对于地球的其他部分,我相信最终的编译&提交到App Store必须在Mac上完成。但是,它仍然可以使用众所周知的IDE进行开发。

答案 9 :(得分:18)

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

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

答案 10 :(得分:16)

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

flashcs 5

flashcs5 apps for iphone

答案 11 :(得分:16)

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

答案 12 :(得分:11)

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

请点击此处了解更多详情:

introduction to xamarin ios for visual studio

答案 13 :(得分:10)

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

我已经尝试了所有这些方法,它们都有利有弊,但对于第二组,我感到有点内疚。我开发了以谋生为目的的应用程序,我不想为此而扯掉其他人。

如果您正在制作一个小项目,基于云的Mac可能会很有用。租一小段时间,开发你的项目,然后离开。不要学习任何新东西。

但是,如果您的项目变得越来越大,跨平台框架似乎是唯一的选择。关键是你需要明智地选择。有这么多的混合框架,但他们所做的可以用一句话概括为"在app包装器中铺设网页"和开发者'混合框架的负面经验也会影响本机框架。

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

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

答案 14 :(得分:8)

如果您想创建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。

答案 15 :(得分:8)

点击此链接Dragon Fire sdk

答案 16 :(得分:7)

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

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

答案 17 :(得分:7)

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

这是less than an optimal解决方案。

恕我直言,商业上最明智的方法是将资金投入苹果认可的框架。这样一来,如果你发现自己陷入了一些令人难以置信的问题,你就会有一个更大的开发者社区来咨询。

答案 18 :(得分:7)

您可以使用 Intel XDK ,您可以在不使用mac的情况下开发和发布适用于iOS的应用。

Click here了解详情。

答案 19 :(得分:7)

看看这个:

Over view

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

话虽如此,我还没试过。该项目似乎相当beta,而且他们的SourceForge网站上没有很多活动。

答案 20 :(得分:6)

另外两个选项

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

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

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

    如果我没有弄错的话,那些输出/使用Xcode并且不使用任何第三方/替代/限制库的Titanium等产品应该符合规范,因为你最终正在编译xcode - 正常的Objective-C代码和图书馆。

答案 21 :(得分:5)

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

现在可以在没有Apple系统的情况下使用此Xamarin实时播放器 开发/部署/调试周期

但要 签署并发布应用Apple系统

找到参考here

我检查了参考没什么狡猾的

答案 22 :(得分:5)

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

答案 23 :(得分:5)

正如已经指出的那样,你可以尝试使用WinChain,但如果你是一个新手编码器,那就不容易了。

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

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

答案 24 :(得分:4)

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

Adob​​e从ActionScript 3获得created compilator到iOS程序。后来Apple approved这种应用程序创建方法。

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

答案 25 :(得分:4)

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

功能概述:

  1. 具有超快速Android模拟器的完整Android环境
  2. iPhone / iPad模拟器,可在几分钟内轻松将iPhone应用程序带到大屏幕iPad上。
  3. 完全支持标准的java调试,在任何平台上对应用程序进行概要分析。
  4. 轻松主题/样式 - 只需点击一下
  5. Develop Android, iOS iPhone, WP8 apps using Java的更多内容 免责声明:这是我对产品的评论

答案 26 :(得分:3)

如果你想在Windows环境下开发一个应用程序,那么有一个选项,你可以在windows平台名称中安装MAC OS:“Niresh'MAC OS”,你可以在Google上搜索那个文本

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

希望这会对你有所帮助。

答案 27 :(得分:3)

许多人已经回答,iPhone SDK仅适用于OS X,我相信Apple永远不会为Windows发布它。但是有几种替代环境/框架允许您开发iOS应用程序,甚至包装并使用Windows机器和MAC提交到AppStore。这是最受欢迎且相对更好的选择。

PhoneGap,允许使用HTML / CSS / JavaScript创建基于网络的应用

Xamarin,C#中的跨平台应用

Adobe AIR,使用Flash / ActionScript播放应用程序

Unity3D,跨平台游戏引擎

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

答案 28 :(得分:3)

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

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

答案 29 :(得分:2)

(截至2014年底准确)

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

<强> 1。虚拟机

查看适用于修改后的Vmware Workstation / Player的小牛(10.9)vmware映像。一旦机器能够启动,它就可以更新到10.9.5而没有明显的问题。

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

错误的:由于虚拟化环境导致性能下降,没有3D加速(QE / CL)

<强> 2。的Hackintosh

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

好的:硬件性能没有任何损失,甚至可能超过真正的mac。如果您打开多重引导

,也可以将相同的硬件用于其他操作系统

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

毋庸置疑,水果公司不赞同上述两种选择,因此许可合规性不是讨论的一部分。

第3。实际的mac(2016年添加)

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

答案 30 :(得分:2)

您可以尝试使用HTML,JavaScript,CSS为iPhone开发网络应用。查看Apple网站上的getting started信息。

答案 31 :(得分:2)

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

Visual Studio

然而,我建议您使用Mac并在Xcode中开发iOS应用程序。

  

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

答案 32 :(得分:2)

使用跨平台工具在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和亚马逊等同样邪恶的公司运营。

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

答案 33 :(得分:1)

这是一个新工具:oxygene,您可以使用它来构建适用于iOS / Mac,Windows RT / 8或Android的应用。它使用从Object Pascal和Visual Studio派生的特定语言(并使用.net或java。)。它似乎真的很强大,但不是免费的。

答案 34 :(得分:1)

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

然而,好消息是您可以购买OS X并在VMWare Workstation等虚拟机中运行它。我不知道这是多么简单,因为让{X}在非Apple硬件上运行是rather difficult,但快速Google search表明它是可能的。这种方法(可能)比购买新Mac更便宜,尽管Mac Mini在美国的零售价仅为599美元。我见过的一些帖子表明这可能是合法的,也可能不合法,其他人说你需要OS X Server进行虚拟化。我会把研究留给你。

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

祝你好运!

答案 35 :(得分:1)

制作Ext JS的公司还有Sencha ArchitectSencha Touch

答案 36 :(得分:0)

请看看Xamarin。它们具有Visual Studio的扩展名(http://xamarin.com/visual-studio)。

取自他们的网站:

  

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

答案 37 :(得分:0)

B4i是一款新的开发工具,可以创建原生iOS应用。它在Windows上运行。 当需要完整编译时(在大多数情况下不需要),项目将在托管构建器上编译。每次编译大约需要5秒钟。 B4i

答案 38 :(得分:0)

查看NS Basic / App Studio。这是iPhone的Visual Basic。 (虽然你也可以用JavaScript编写代码)。它生成WebApp,无需通过App Store即可分发。应用也可以在其他平台上运行,例如Android。 NS Basic/App Studio

答案 39 :(得分:0)

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

答案 40 :(得分:0)

只需制作一个网络应用程序。 iOS 网络应用是:

  1. 可靠。进行更新所需的时间比使用 XCode 短得多。
  2. 快。 iOS 上的 JavaScript 本质上比原生应用快得多。
  3. 免费。您永远不必向 Apple 支付一分钱,因为 Apple 对您没有任何控制权。
  4. 更安全。如果本机应用程序发生崩溃,它甚至可以关闭最新的 iOS 设备数小时甚至数天,直到用户可以修复它们。如果网络应用崩溃,用户只需关闭并重新打开它,最坏的情况是。
  5. 离线。您可以轻松创建 Service Worker 来处理您的应用。
  6. 安全。由于您无法访问原生 API,因此安全漏洞的危险性会大大降低。
  7. 易于编程。可以从 iPhone 上的 Safari URL 栏对基本的 iOS Web 应用程序进行编程。字面上地。我自己做的。