有没有办法在Windows机器上修补iPhone SDK?是否有针对Windows的iPhone SDK版本计划?
我能想到的另一种方法是在Windows上运行的 VMWare 服务器上运行Mac VM映像,但我不太确定这有多合法。
答案 0 :(得分:489)
当然可以在Windows机器上进行开发,事实上,我的第一个应用程序是在我当时使用的旧Dell Precision上开发的:)
有三条路线;
第一条路线需要修改(或使用预先修改过的)可以安装在普通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:
您可以直接在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)
答案 11 :(得分:16)
尝试macincloud.com它允许您租用mac并通过RDP远程控制访问它。然后,您可以使用PC访问Mac,然后开发应用程序。
答案 12 :(得分:11)
万岁!现在,您可以使用最新的Xamarin.iOS轻松完成此任务,使用提供构建和部署功能的网络链接mac。
请点击此处了解更多详情:
答案 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)
看看这个:
这个项目试图将用各种源语言编写的程序交叉编译成各种目标语言。最初的测试案例之一是用Java编写程序并在iPhone上运行它们。在网站上观看视频是值得的。
话虽如此,我还没试过。该项目似乎相当beta,而且他们的SourceForge网站上没有很多活动。
答案 20 :(得分:6)
另外两个选项
Titanium Developer - 免费社区版 - 用HTML / JavaScript编写 - 使用Xcode编译(需要Mac或VM)
OpenPlus ELIPS Studio - 用Flex编写,在Xcode上编译(需要Mac或VM) - 然而他们只是开始为他们的产品收费。
我认为这些以及其他一些提到的“工具链”选项可能会允许您在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软件和硬件。
Adobe从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中进行编码,具有所有广泛的功能
功能概述:
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)
答案 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 Architect和Sencha 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 网络应用是: