我听说如果你想开发iPhone应用,你需要买一台Mac。这是真的?
是否可以使用Linux开发iPhone应用程序?如果是,我需要什么以及在哪里下载必要的工具?
答案 0 :(得分:292)
为了提供不同的响应,我在Linux上的虚拟化(VMware)计算机上运行OS X和Xcode。 CPU是Core2Quad(Q8800),速度非常快。我在网上找到了一个预建的VM(我会留给你找的) Xcode / iPhone开发工作完美,通过USB调试到手机本身也是如此。
这让我感到很惊讶 - 但我根本没有任何问题。
答案 1 :(得分:75)
这个问题的答案实际上取决于您是否要开发通过iPhone商店分发的应用程序。如果你不这样做,并且不介意为“越狱”的iPhone人群开发 - 那么就可以从Linux开发。
查看本章的页面,了解有关如何做的全面(如果有点复杂)指南:
答案 2 :(得分:25)
到目前为止似乎是真的。 Apple提供的唯一SDK仅针对MacOS环境。我对此感到沮丧,但我现在正在考虑购买一台Mac,只是为了开发iPhone。我真的不喜欢他们正在做的事情,我希望为其他环境(如Linux和Windows)提供一个好的SDK。
这是一篇关于他们关于SDK的一般情况的文章:
The iPhone SDK and free software: not a match
Apple最近发布了一款适用于iPhone的软件开发套件(SDK),但如果你希望用它移植或开发原创的开源软件,那么这个消息并不好。代码签名和不公开条件使自由软件无法使用。
SDK本身是免费下载的,您可以使用它来编写程序并在软件模拟器上运行它们。但是,为了实际发布您编写的软件,您必须注册iPhone开发人员计划 - 与下载SDK分开的步骤,以及需要Apple批准的步骤。
我认为他们认为只有macos用户才能为他们的手机编写程序,并且如果你想要发布你的东西需要购买100美元的许可证,这对他们来说是非常精英的。业余爱好者程序员。但是,如果这就是你需要做的事情,我打算跳过他们的篮球;我真的很想在我的iPhone上开发一些东西。
答案 3 :(得分:20)
曾经是一个致力于解决此缺陷的项目:iphone-dev
iphone-dev项目的目标是创建一个免费的,可移植的,高质量的工具链,以便为基于ARM / Darwin平台的Apple iPhone和其他嵌入式设备进行开发。
答案 4 :(得分:12)
关于替代工具链,Saurik的网站非常有用,但是对于最新的固件开发,他指出在iPhone本身上构建并且没有表明您可能需要将必要的iPhone固件文件复制到Linux环境中。这并非不可能,但只需要额外的工作,尤其是签署代码时(也有开放的替代解决方案)。
另外,请查看其他指南(对于相同的工具链)更有条理地接近它。
我建议仍然在XCode中进行最终构建和代码签名和打包(这可能意味着借用某人的Mac),以防在向Apple提交应用程序时遇到问题。使用替代工具链(至少在Mac上)可以使用除XCode之外的其他IDE来开发应用程序,并再次使用XCode进行部署和模拟器测试。
当然,如果您从XCode之外的命令行获得代码签名/证书生成,那么您可以在您的实际iPhone上安装证书并在那里进行测试(通过iTunes安装带有您的证书的应用程序)。
答案 5 :(得分:7)
我知道在Linux上为iPhone开发的唯一方法是安装Vmware并努力让OS X在虚拟机中运行。据说这样做有一些“合法”的担忧。据报道,OS X Server可以虚拟化,但就我不知道的开发故事而言。
如果你真的很认真,那就是我要调查的内容。
祝你好运。答案 6 :(得分:5)
您可能能够在Linux机器上编写最终会在iPhone或iPad上找到自己的代码,但最终您需要使用Mac来测试或部署代码到iPhone或将其提交到App Store。所以最终你需要一台Mac,所以你也可以使用Apple提供的所有工具来完成Mac上的工作。还有Xcode和X的替代品。 Objective-C,例如Monotouch - 但它们也使用Apple工具。
您可以通过一些工作在Linux上的VM中运行OS X.但是,我应该指出,即使你购买了OSX的副本,这也会破坏OSX许可协议 - 因为它只被授权在Apple硬件上运行。
很抱歉给你这个消息 - iPhone / iPad周围的生态系统受到严密控制。
编辑:一个主要的例外是为iPhone编写一个Web应用程序。 iPhone有一些优秀的网络应用程序,几乎与原生应用程序的用户体验一样好。但是,我确实将您的问题解释为本机应用程序开发。 Web应用程序,虽然用户可以创建一个图标来启动它们 - 仍然是“二等”公民。
答案 7 :(得分:5)
您可以使用Tersus(开源),它可以让您将应用程序导出为Xcode项目。
答案 8 :(得分:3)
我使用iOS clang toolchain by cjacker在linux上构建iOS应用程序已经成功。基本上它包含来自linux发行版的上游clang和llvm工具,苹果链接器的linux端口以及一些帮助简化构建过程的额外工具(例如将xcode项目转换为Makefile格式)。
安装需要几个步骤,但您是软件开发人员,所以您已经习惯了。我在网上发布了Debian 7(Wheezy)的最新howto:
http://www.ninthavenue.com.au/how-to-build-an-ios-toolchain-for-linux-debian-7
否则你想要使用更老的通用指令:
http://code.google.com/p/ios-toolchain-based-on-clang-for-linux/wiki/HowTo_en
祝你好运。答案 9 :(得分:3)
有一个名为Rhodes的框架。
这个概念基于Ruby on Rails,您可以用Ruby和HTML开发移动应用程序,并且可以在Linux环境中编写代码。然后,您可以在Rhohub创建一个帐户,在其中添加代码(通过GitHub),它允许您为iPhone,Blackberry,Android,Windows Mobile和Symbian编译它们,所有这些都是相同的码。您不必使用适用于iPhone的Objective-C代码,也不需要使用适用于Android的Java等代码。它可以为您进行转换。您需要做的就是坚持创建iPhone应用程序的规则(或您想要开发的手机),以便在iTunes(或同等市场)上接受它。
这样您就可以将应用程序添加到iTunes中。
我还没有找到任何模拟器,这意味着要测试你的应用程序,你需要将它放在iPhone上,这是一项任务。
我正在使用此选项,因为我想为所有手机创建应用程序,我已经使用Ruby on Rails了。如果您只想为iPhone制作应用程序,请投资购买Mac。
希望这有帮助。
答案 10 :(得分:1)
我尝试将cocos2d-iphone移植到GNUstep,以便您可以基于cocos2d 开发游戏。但是对于发布,你需要一个mac。 cocos2d-GNUstep。
答案 11 :(得分:1)
你需要获得它的mac。有几个可用的工具链(如win-chain)实际上允许您在Windows上编写和构建i Phone应用程序。有几个相关的教程可以在Windows上构建Objective C代码。但是有一个问题,因此开发的应用程序只适用于Jail broken i Phones。
我们已经看到很少有黑客可以克服它并将其转移到App Store,但随着Apple不断更新SDK,工具链需要定期更新。这是一个麻烦,一直在弥补。如果你想准备应用程序,你也可以以合理的价格从arcapps的启动应用程序的帮助。 iphone app development
答案 12 :(得分:1)
你是对的非越狱手机仅限于Apple的App商店,Apple“有权”执行任何规则,它完全是非自由的领域。 然而,在开发过程中,根本不需要与Apple打交道。你可以用例如rsync将代码上传到设备并进行测试。
答案 13 :(得分:1)
在某种程度上,是的,这是可能的。您可以键入Objective-C代码并设置项目。您甚至可以使用gcc测试代码的C和C ++部分。
你不能做什么:
答案 14 :(得分:0)
我建议使用mac,因为ios模拟器在应用程序的早期阶段测试非常棒。但我确实知道我们合作的一家小公司使用Unity开发,因此他们不需要大量的mac。这样他们只需要一个mac用于办公室,这只是为了编译最终版本。这也意味着它可以在Android上运行,但它实际上取决于你的构建,因为它是一个游戏引擎。您可能希望使用Sencha Touch Mobile等框架来查看Web应用程序
Unity:http://unity3d.com/ Sencha Touch:http://www.sencha.com/products/touch/
答案 15 :(得分:-5)
如果你珍惜时间,买一台Mac吧!我不太了解Linux开发选项以提供可行的解决方案,但似乎所提出的方法涉及一些非常迂回的工作。如果您打算认真撰写和销售iPhone应用程序,我认为您可以轻松收回Mac Mini或Macbook的成本。 : - )
答案 16 :(得分:-5)
如果不使用Xcode开发,您将永远不会让Apple批准您的应用。决不。如果你确实破解SDK在Linux上开发并且Apple发现了,那么当你获得服务时不要感到惊讶。我是ADC和iPhone开发人员计划的成员。相信,Apple对此非常认真。
不要冒风险,购买Macbook或Mac mini(是的,mini可以运行Xcode - 虽然很慢 - 如果你使用mini,可以提升RAM)。此外,虽然我已经看到OS X被黑客在VMware上运行但我从未见过有人在VM上运行Xcode。祝你好运。在你遇到麻烦之前我会检查EULA。
PS:在阅读了上述内容之后,是的我同意如果您破解SDK并在Linux上进行开发至少在Mac上进行最终打包。并通过Mac提交。 Apple没有逐行运行代码,所以我怀疑他们会抓住它。但是男人,这是很多,如果有的话和工作。尽管很有趣。 :)