我听说如果你想开发iPhone应用,你需要得到一台Mac.这是真的?
是否可以使用Linux开发iPhone应用程序?如果是,我需要什么以及在哪里下载必要的工具?
为了提供不同的响应,我在Linux上的虚拟化(VMware)计算机上运行OS X和Xcode.CPU是Core2Quad(Q8800),速度非常快.我在网上找到了一个预建的VM(我会留给你找)Xcode/iPhone开发工作完美,通过USB调试到手机本身也是如此.
它实际上让我感到很惊讶 - 但我根本没有任何问题.
这个问题的答案实际上取决于您是否要开发通过iPhone商店分发的应用程序.如果你不这样做,并且不介意为"越狱"的iPhone人群开发 - 那么就可以从Linux开发.
查看本章的页面,了解有关如何操作的全面(如果有点复杂)指南:
http://www.saurik.com/id/4
到目前为止似乎是真的.Apple提供的唯一SDK仅针对MacOS环境.我一直对此感到不安,但我现在正在考虑购买一台Mac,只是为了开发iPhone.我真的不喜欢他们正在做的事情,我希望为其他环境(如Linux和Windows)提供一个好的SDK.
这是一篇关于他们关于SDK的一般情况的文章:
iPhone SDK和免费软件:不匹配
Apple最近发布了一款适用于iPhone的软件开发套件(SDK),但如果你希望用它移植或开发原创的开源软件,那么这个消息并不好.代码签名和非公开条件使得免费软件成为一种禁忌.
SDK本身是免费下载的,您可以使用它来编写程序并在软件模拟器上运行它们.但是,为了实际发布您编写的软件,您必须注册iPhone开发人员计划 - 与下载SDK分开的步骤,以及需要Apple批准的步骤.
我认为他们认为只有macos用户足够好为他们的手机编写程序才是相当精英,如果你想发布你的东西,你需要购买100美元的许可证,这对于业余爱好者程序员来说真的更难.但是,如果这就是你需要做的事情,我打算跳过他们的篮球; 我真的很想在我的iPhone上开发一些东西.
There used to be a project dedicated to solve this defect: iphone-dev
The goal of the iphone-dev project is to create a free, portable, high quality toolchain to enable development for the Apple iPhone and other embedded devices based on the ARM/Darwin platform.
关于替代工具链,Saurik的网站非常有用,但是对于最新的固件开发,他指出在iPhone本身上构建并且没有表明您可能需要将必要的iPhone固件文件复制到Linux环境中.这并非不可能,但只需要额外的工作,特别是对于代码签名(还有开放的替代解决方案).
另外,看看其他指南(对于相同的工具链)更有条理地接近它.
我建议仍然在XCode中进行最终构建和代码签名和打包(这可能意味着借用某人的Mac),以防在向Apple提交应用程序时遇到问题.使用替代工具链(至少在Mac上)可以使用除XCode之外的其他IDE来开发应用程序,并再次使用XCode进行部署和模拟器测试.
当然,如果您从XCode之外的命令行获得代码签名/证书生成,那么您可以在您的实际iPhone上安装证书并在那里进行测试(通过带有您的证书的iTunes安装应用程序).
我知道在Linux上为iPhone开发的唯一方法是安装Vmware并努力让OS X在虚拟机中运行.据说这样做有一些"合法"的担忧.据报道,OS X Server可以虚拟化,但就我不知道的开发故事而言.
如果你真的很认真,那就是我要调查的内容.
祝好运.
您可以使用Tersus(开源),它允许您将应用程序导出为Xcode项目.
您可以在Linux机器上编写代码,最终将自己发现在iPhone或iPad上,但最终您需要使用Mac来测试或部署代码到iPhone或将其提交到App Store.所以最终你需要一台Mac,所以你也可以使用Apple提供的所有工具来完成Mac上的工作.还有Xcode和Objective-C的替代品,例如Monotouch - 但它们也使用Apple工具.
您可以通过一些工作在Linux上的VM中运行OS X. 但是我应该指出,即使您购买了OSX的副本,这也将打破OSX许可协议 - 因为它只被授权在Apple硬件上运行.
很抱歉给你这个消息 - 围绕iPhone/iPad的生态系统受到严格控制.
编辑:一个主要的例外是为iPhone编写一个Web应用程序.iPhone有一些优秀的网络应用程序,几乎与原生应用程序的用户体验一样好.但是,我确实将您的问题解释为本机应用程序开发.Web应用程序,虽然用户可以创建一个图标来启动它们 - 仍然是"二等"公民.