在Linux中开始iPhone应用程序开发?[关闭]


529

我听说如果要开发iPhone应用程序,则需要购买Mac。这是真的?

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



2
有人可以编辑此s / Linux / unix进行概括吗?
好人2012年

5
@GoodPerson然后,您将使OS X与其他OS之间的界线变得模糊,这就是这个问题所在。
李斯特先生,2015年

2
我发现过的最重要的信息之一。我要说的绝对是话题性的
Marco Faustinelli

Answers:


303

为了提供不同的响应,我在Linux上的虚拟化(VMware)机器上运行OS X和Xcode。CPU是Core2Quad(Q8800),并且速度非常快。我在线找到了一个预构建的VM(我将留给您查找),Xcode / iPhone开发非常完美,通过USB调试到手机本身也很完美。

实际上,这让我感到非常惊讶-但我一点都没有问题。


11
因此,可以使用您的方法在iTunes上签名并分发它吗?
Eldelshell

43
是的-没问题。您正在使用XCode,签名工作正常,我现在在商店中有一个生产应用程序,由VM提交。出于明显的原因,我不会命名。
混乱:

18
@Chaos:您能否发布链接到您用来使设置运行的确切位置?
Glycan 2013年

4
可以信任预构建的VM吗?我的意思是嵌入式罪魁祸首软件,后门...
DummyBeginner

2
好。我对此有意见。开发应用程序后,您可以使用此服务发布macincloud.com
Fabrizio Bertoglio

75

答案实际上取决于您是否要开发然后通过iPhone商店分发的应用程序。如果您不这样做,并且不介意为“越狱”的iPhone人群开发产品,那么就有可能从Linux进行开发。

请查看本章的页面,以获取有关操作的综合指南(如果有些复杂的话):

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


26

到目前为止,这似乎是正确的。Apple提供的唯一SDK仅针对MacOS环境。我对此感到不安,但我现在正在考虑购买Mac,只是为了进行iPhone开发。我真的不喜欢他们在做什么,我希望有一个好的SDK可以用于其他环境,例如Linux和Windows。

有关SDK的障碍

iPhone SDK和免费软件:不匹配

苹果公司最近发布了用于iPhone的软件开发工具包(SDK),但是如果您希望使用它移植或开发原始的开源软件,那么消息就不好了。代码签名和保密条件使自由软件无法使用。

SDK本身是免费下载的软件,您可以使用它编写程序并在软件模拟器上运行它们。但是,要实际发布您编写的软件,您必须注册iPhone开发人员计划-这与下载SDK分开,而且需要获得Apple批准。

我认为他们认为只有macOS用户才足以为他们的手机编写程序,这对他们来说是相当精英的,而且如果您想发布自己的东西就需要购买100美元的许可证,这实际上使业余程序员更加困难。但是,如果那是您需要做的,我正计划跳过他们的篮球。我真的很想在我的iPhone上开发一些东西。


9
如前所述,我认为这不是精英主义的错。XCode和所有其他开发工具(低级项目(如GCC除外))以及所有iPhone框架都是用Cocoa编写的。他们需要首先将所有这些移植到其他操作系统。那不是小任务。
布拉德·拉尔森

24
让我知道微软何时发布适用于Linux和Mac的Visual Studio ...
Stephen Darlington,

12
让我知道微软何时发布Visual Studio,Access,Frontpage,XNA,DirectX,Office(具有所有功能),Movie Maker,Visio,IIS或Mac / Linux版Exchange。
布罗克·伍尔夫

97
让我知道微软何时违反EULA在(Dar)Wine中运行Visual Studio,Access,Frontpage,XNA,DirectX,Office,Movie Maker,Visio,IIS或Exchange。
lfaraone

5
@MarceloMason有点。它是Visual Studio Code,而不是完整的IDE。
斯蒂芬·达林顿

20

曾经是一个致力于解决这一缺陷项目:iphone-dev的

iphone-dev项目的目标是创建一个免费,便携式,高质量的工具链,以支持Apple iPhone和其他基于ARM / Darwin平台的嵌入式设备的开发。


4
该项目似乎未从站点进行常规开发或维护(例如,有关构建工具/可移植性的Wiki条目自2010年2月起)。
2014年

4
@先生。F,确实死了。
JohanBoulé2015年

13

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

另外,请参阅其他指南(针对同一工具链),该指南更加有条理。

我建议仍然在XCode中进行最终的构建,代码签名和打包(这可能意味着借用Mac),以防在将应用程序提交给Apple时遇到问题。使用替代工具链(至少在Mac上是这样)可以使用XCode以外的其他IDE来开发应用程序,并再次诉诸XCode进行模拟器的部署和测试。

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


7

我知道在Linux下为iPhone进行开发的唯一方法是安装Vmware并致力于使OS X在虚拟机上运行。话虽这么说,这样做还是有一些“法律上的”顾虑。据报道,OS X Server可以被虚拟化,但是据我所不了解的开发故事。

如果您真的很认真,那就是我要调查的内容。

祝好运。


4
我已经尝试了VMWare选项,并且至少在我的硬件(T5200 Core2、2M ram)上尝试过,它速度太慢了。我的朋友也有类似的经历。
帕兰德

3
我也是。慢,慢,慢。您甚至都不想尝试。
Nosredna,2009年

5
@Parand当然,在2M的ram上它会变慢,我什至惊讶它甚至是靴子!
Jeshurun

2
您可能要尝试使用VirtualBox而不是vmware。我认为VMWare太肿了。
哈林达卡

5

您可以使用Tersus(开源),它可以将应用程序导出为Xcode项目。


Tersus Studio generates native iPhone applications in the form of Xcode projects that you can compile and sign using Apple's iPhone SDK.因此它将无法完成和签署本机iOS应用程序
MarSoft

5

您也许可以在Linux盒子上编写代码,最终在iPhone或iPad上找到自己的代码,但是最终您将需要Mac来测试代码或将代码部署到iPhone或提交给App Store。因此,最终您需要一台Mac,因此您也可以使用Apple提供的所有工具在Mac上进行工作。Xcode和Objective-C还有其他替代品,例如Monotouch-但它们也利用Apple工具。

您可以通过一些工作在Linux上的VM中运行OSX。但是,我要指出的是,即使您购买了OSX的副本,这也会破坏OSX许可协议-因为它仅被许可在Apple硬件上运行。

很抱歉给您这个消息-iPhone / iPad周围的生态系统受到严格控制。

编辑:对此的一个主要例外是为iPhone编写了一个Web应用程序。iPhone有一些出色的Web应用程序,它们的用户体验几乎与本机应用程序一样好。但是,我确实将您的问题解释为与本机应用程序开发有关。Web应用程序尽管用户可以创建一个图标来启动它们,但仍然是“二等”公民。


4
尽管如果您在Mac上运行Linux,则可以允许在虚拟化环境中运行Lion。
Cajunluke 2011年

4

我已经成功使用cjackeriOS clang工具链在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

祝好运。


2

有一个叫做Rhodes的框架

该概念基于Ruby on Rails,您可以使用Ruby和HTML开发移动应用程序,并且可以在Linux环境中编写代码。然后,您可以在Rhohub创建一个帐户,在其中添加代码(通过GitHub),并允许您针对iPhone,Blackberry,Android,Windows Mobile和Symbian对其进行编译,而无需使用相同的代码。您无需在iPhone的Objective-C中编写代码,也无需在Android的Java中编写代码等。它可以为您完成转换。您需要做的就是遵守创建iPhone应用程序(或您要开发的Phone)的规则,以便可以在iTunes(或等效的市场)上接受它。

这也将允许您将应用程序也添加到iTunes。

但是,我还没有找到任何模拟器,这意味着要测试您的应用程序,需要将其放在iPhone上,这是一个使命。

我正在使用此选项,因为我想为所有电话创建应用程序,并且已经使用Ruby on Rails。如果您只想为iPhone制作应用程序,请购买Mac。

希望这可以帮助。


1

没错,非越狱的手机仅限于Apple的App Store,Apple“有权”执行任何规则,这完全是非自由的领域。但是,在开发过程中,完全不必与Apple打交道。您可以使用例如rsync将代码上传到设备并进行测试。


这个项目是否克服了Stephen Cox提出的问题?“你永远不会让你的应用程序通过Apple审批,如果使用的Xcode从来没有开发它,如果你破解SDK在Linux上开发和苹果公司发现了。”谢谢你
而真正的

libmobiledevice实际上具有一个不错的界面来安装应用程序,而无需在iDevice上运行rsync / ssh。
德怀特·斯宾塞

1

是的,在一定程度上是可能的。您可以键入Objective-C代码并设置您的项目。您甚至可以使用gcc测试代码的C和C ++部分。

您不能做什么:

  • 由于仅Mac,请使用Interface Builder设置您的界面。(不是必需的,但建议。)
  • 编译使用Apple Cocoa类的代码-它们在Linux上不存在。
  • 在模拟器中测试代码-Linux中没有代码。
  • 为真实设备或App Store编译代码-所有这些都需要Apple仅为OS X提供的工具。

当您说这些类不存在时,您是什么意思?我只需要标题,Apple仍会为我链接它。AFAIK是应用程序提交的工作方式。
Janus Troelsen

1

您需要获取Mac。实际上,有几种工具链(例如win链)可让您在Windows上编写和构建i Phone应用程序。有一些相关的教程可以在Windows上构建Objective C代码。但是有一个问题,因此开发的应用程序只能在“越狱”的i Phone上运行。

我们看到很少有黑客可以克服这些问题并将其发布到App Store,但是随着Apple不断更新SDK,工具链需要定期更新。一直很麻烦,如果要准备就绪的应用程序,还可以以合理的价格向arcapps的启动应用程序寻求帮助。 iPhone应用程序开发



0

我建议您购买Mac,因为ios模拟器对于在应用程序的早期阶段进行测试来说非常棒。但是我确实知道我们合作的一家小公司使用Unity开发,因此他们不需要大量的mac。这样,他们只需要一台Mac办公用,这只是编译最终版本。这也意味着它可以在android上运行,但实际上取决于您的建筑物,因为它是游戏引擎。您可能想使用Sencha Touch Mobile等框架研究Web应用程序

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


-5

如果您珍惜时间,请购买Mac!我对Linux开发选项知之甚少,无法提供可行的解决方案,但似乎建议的方法涉及一些相当复杂的工作。如果您打算认真编写和销售iPhone应用程序,我认为您可以轻松弥补Mac Mini或Macbook的成本。:-)


4
现在有大约50,000个应用程序,要赚很多不一定很容易。沙拉的日子也许已经一去不复返了。
Nosredna

@Nosredna我想相信沙拉又来了。但是说真的,你是对的。
Wyatt8740'1/

杜德,如果我们正在寻找替代方案,那是因为无法购买。
罗杰·罗素

-5

如果您的应用程序不是使用Xcode开发的,则永远不会获得Apple的批准。决不。而且,如果您确实破解了要在Linux上开发的SDK,并且Apple知道了,当您获得服务时也不要感到惊讶。我是ADC和iPhone开发人员计划的成员。相信,苹果对此非常认真。

不要冒险,购买Macbook或Mac mini(是的,如果运行mini,则mini可以运行Xcode,尽管速度很慢,但可以提高RAM)。另外,虽然我看到OS X被黑客攻击可以在VMware上运行,但是我从未见过有人在VM上运行Xcode。祝你好运。在遇到麻烦之前,我会检查EULA。

PS:阅读以上内容后,是的,我同意如果您确实破解了SDK并在Linux上进行开发,至少要在Mac上进行最终打包。并通过Mac提交。苹果没有逐行运行代码,所以我怀疑他们会抓住这一点。但是,伙计,这是很多工作的基础。尽兴而为。:)


1
新的迷你车可以胜任这项任务。我认为它们约为600美元,您几乎可以使用任何鼠标,键盘和显示器。请务必校准显示器!XCode在未扩展的mini上似乎运行良好。
Nosredna,2009年

7
Xcode在Mac OS X虚拟机中运行良好。
dave1010 2011年

2
Apple始终批准Air SDK应用程序,与XCode零交互。您可以在linux / windows上完成整个构建。
j_mcnally
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.