我听说如果你想开发iPhone应用程序,你需要一台Mac电脑。这是真的吗?

有可能使用Linux开发iPhone应用程序吗?如果是,我需要什么,我从哪里下载必要的工具?


到目前为止,这似乎是真的。苹果提供的唯一SDK仅针对macOS环境。我一直对此感到不安,但我现在正在考虑买一台mac电脑,只是为了开发iPhone。我真的不喜欢他们正在做的事情,我希望有一个好的SDK出现在其他环境中,比如Linux和Windows。

关于SDK的障碍:

The iPhone SDK and free software: not a match Apple's recently released a software development kit (SDK) for the iPhone, but if you were hoping to port or develop original open source software with it, the news isn't good. Code signing and nondisclosure conditions make free software a no-go. The SDK itself is a free download, with which you can write programs and run them on a software simulator. But in order to actually release software you've written, you must enroll in the iPhone Developer Program -- a step separate from downloading the SDK, and one that requires Apple's approval.

我认为他们认为只有macOS用户才能为他们的手机编写程序是相当精英的,而且如果你想发布你的东西,你需要购买100美元的许可证,这真的让业余程序员更加困难。不过,如果这是你需要做的,我打算跳过他们的圈子;我真的很想在我的iPhone上开发一些东西。


我所知道的在iPhone Linux上进行开发的唯一方法是安装Vmware,并在虚拟机中运行OS X。尽管如此,这样做还是有一些“法律”问题。据报道,OS X服务器可以虚拟化,但就开发故事而言,我不知道。

如果你是认真的,那就是我要调查的。

祝你好运。


这个问题的答案取决于你是否想要开发通过iPhone商店发行的应用。如果你没有,也不介意为“越狱”的iPhone人群开发——那么从Linux开发是可能的。

看看这个家伙的页面,有一个全面的(如果有点复杂)指南,告诉你该怎么做:

http://www.saurik.com/id/4


至于替代工具链,Saurik的网站很有用,但对于最新的固件开发,他建议在iPhone本身上构建,并没有指出您可能需要将必要的iPhone固件文件复制到Linux环境中。这不是不可能的,只是需要额外的工作,特别是对代码签名(也有开放的替代解决方案)。

另外,看一看其他指南(对于相同的工具链),它们更有系统地处理它。

我建议还是在XCode中完成最终的构建、代码签名和打包(这可能意味着借用别人的Mac),以防你在向苹果提交应用程序时遇到问题。使用替代工具链打开了(至少在Mac上)使用XCode以外的其他ide开发应用程序的可能性,并再次使用XCode进行部署和模拟器测试。

当然,如果你确实在XCode之外的命令行中获得了代码签名/证书生成,那么你可以在实际的iPhone上安装证书并在那里进行测试(通过iTunes安装带有证书的应用程序)。


如果你的应用不是用Xcode开发的,你就永远不会得到苹果的批准。从来没有。如果你真的入侵了SDK在Linux上开发,而苹果发现了,当你被服务时,不要感到惊讶。我是ADC和iPhone开发者计划的成员。相信我,苹果对此非常认真。

不要冒险,买一台Macbook或Mac mini(是的,mini可以运行Xcode -虽然很慢-如果你用mini的话,可以提高RAM)。此外,虽然我见过OS X在VMware上运行,但我从未见过有人在VM上运行Xcode。祝你好运。在你麻烦你之前,我会先看一下EULA。

PS:读完以上,是的,我同意,如果你真的入侵SDK并在Linux上开发,至少要在Mac上完成最终的打包,并通过Mac提交。苹果不会逐行运行代码,所以我怀疑他们会发现这一点。但是,伙计,那有很多如果和工作。尽管这样做很有趣。:)


为了提供不同的响应,我在Linux上的虚拟机(VMware)上运行OS X和Xcode。CPU是Core2Quad (Q8800),速度非常快。我在网上找到了一个预构建的虚拟机(我会把它留给你去找) Xcode/iPhone开发非常完美,通过USB调试到手机本身也是如此。

这实际上让我很惊讶,但我一点问题都没有。


如果你珍惜你的时间,买一台Mac吧!我对Linux开发选项的了解还不够多,无法提供一个可行的解决方案,但似乎建议的方法涉及一些相当迂回的工作。如果你打算认真编写和销售iPhone应用程序,我认为你可以很容易地收回购买Mac Mini或Macbook的成本。: -)


曾经有一个项目专门解决这个缺陷:iphone-dev

iPhone开发项目的目标是创建一个免费的、可移植的、高质量的工具链,以支持苹果iPhone和其他基于ARM/Darwin平台的嵌入式设备的开发。


你说得对,非越狱手机仅限于苹果应用商店,苹果“有权”执行任何规则,这完全是非自由领域。 然而,在开发过程中,开发者根本不需要与苹果打交道。您可以使用例如rsync将代码上传到设备并进行测试。


你可以使用Tersus(开源),它允许你将应用导出为Xcode项目。


我曾尝试将cocos2d-iphone移植到GNUstep,这样你就可以基于cocos2d开发游戏了。但是对于发布,你需要一个mac. cocos2d-GNUstep。


你得去找麦克。有几个可用的工具链(如win-chain)实际上可以让你在windows上编写和构建iphone应用程序。有几个相关的教程可以在Windows上构建Objective C代码。但有一个问题,因此开发的应用程序只能在越狱手机上运行。

我们已经看到了一些克服这一障碍并将其推向App Store的方法,但随着苹果不断更新sdk,工具链也需要定期更新。总是化妆是件麻烦事。如果你想准备好应用程序,你也可以从arcapps得到帮助,它以合理的价格推出应用程序。 IPhone应用开发


你可能能够在Linux机器上编写代码,最终会在iPhone或iPad上运行,但最终你需要一台Mac来测试或将代码部署到iPhone或提交到应用程序商店。所以最终你还是需要一台Mac电脑,所以你也可以用苹果提供的所有工具在Mac电脑上工作。除了Xcode和Objective-C,还有其他选择,比如Monotouch——但这些也利用了苹果的工具。

你可以在Linux上的虚拟机上运行OS X。然而,我应该指出,这将打破OSX许可协议,即使你购买了OSX的副本-因为它只被授权在苹果硬件上运行。

很抱歉告诉你这个消息——围绕iPhone/iPad的生态系统是被严格控制的。

编辑:一个主要的例外是为iPhone编写web应用程序。iPhone上有一些优秀的网页应用,它们的用户体验几乎和原生应用一样好。但是我把你的问题理解为原生应用开发。尽管用户可以创建一个图标来启动Web应用程序,但它们仍然是“二等”公民。


在某种程度上,是的,这是可能的。你可以输入Objective-C代码并设置你的项目。您甚至可以使用gcc测试代码的C和c++部分。

你不能做的:

使用界面生成器来设置你的界面,因为它是mac专用的。(不是必需的,但推荐) 编译使用苹果Cocoa类的代码——它们在Linux上不存在。 在模拟器中测试代码——Linux中没有。 为真实设备或应用商店编译代码——所有这些都需要苹果只为OS X提供的工具。


我建议使用mac,因为ios模拟器非常适合在应用的早期阶段进行测试。但我知道有一家与我们合作的小公司使用Unity进行开发,所以他们不需要大量的mac。这样,他们只需要一个mac的办公室,这只是编译最终版本。这也意味着它适用于android,但这取决于你的建筑,因为它是一个游戏引擎。你可能想要使用像Sencha Touch Mobile这样的框架来研究web应用

团结:http://unity3d.com/ Sencha Touch: http://www.sencha.com/products/touch/


有一个叫做Rhodes的框架。

The concept is based on Ruby on Rails and you develop your mobile app in Ruby and HTML, and you can write your code in a Linux environment. You can then create an account at Rhohub, where you add the code (through GitHub), and it allows you to compile it for iPhone, Blackberry, Android, Windows Mobile and Symbian, all off the same code. You don't have to code in Objective-C for iPhone, nor Java for Android, etc. It does the conversions for you. All you need to do is stick to the Rules for creating an iPhone application (or the Phone's you want to develop for) so it can be accepted at iTunes (or the equivalent market).

这将允许你将应用程序添加到iTunes中。

然而,我还没有找到任何模拟器,这意味着要测试你的应用,你需要把它放在iPhone上,这是一项任务。

我正在使用这个选项,因为我想为所有手机创建应用程序,我已经使用Ruby on Rails。如果你只是想为iPhone开发一款应用,那就投资Mac吧。

希望这能有所帮助。


我曾经成功地使用cjacker的iOS clang工具链在linux上开发iOS应用。基本上,它由来自linux发行版的上游clang和llvm工具、苹果连接器的linux端口和一些额外的工具组成,以帮助简化构建过程(例如将xcode项目转换为Makefile格式)。

它确实需要几个步骤来安装,但你是一个软件开发人员,所以你应该习惯了。我在网上发布了Debian 7 (Wheezy)的最新howto:

https://rogerkeays.com/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

祝你好运。