可以在Linux中运行Xcode吗?


186

可以在Linux中运行Xcode吗?Mac OS X基于BSD Unix,这可能吗?

据我所知,有一个带iPhone模拟器的MonoDevelop插件。


2
我认为这就是您要寻找的东西苹果发布了
Swift

他们发布了迅速而不是Xcode。
Antzi 2015年

还是不好。只是该语言是开源的,并与标准库一起在Linux上发布。它并非旨在制作iOS应用或替换Xcode。更喜欢快速开发Linux应用程序。当然,这将简化希望制作交叉编译器的人们的工作。
Antzi 2015年

Answers:


399

Xcode的低级工具链(gcc编译器系列,gdb调试器等)都是开源的,并且是Unix和Linux平台通用的。但是IDE(编辑器,项目管理,索引,导航,构建系统,图形调试器,可视数据建模,SCM系统,重构,项目快照等)是Mac OS X Cocoa应用程序,并且不可移植。


76
对常见和以Mac为中心的+1优秀短文进行了细分
curtisk,2010年

11
更不用说在其他操作系统上运行它可能会破坏其EULA。苹果在许可协议方面特别st。
jpaugh 2015年

1
这不是100%正确(或最新)。标准GCC无法生成Mach-O目标文件,但是Clang可以。但是随后您仍然需要Apple的ld来链接最终的二进制文件。Darling可以在Linux(而不是Xcode IDE)上运行原始的Xcode工具链。
LubosD

38

还没有人建议Vagrant,所以这里是OSX的Vagrant框

vagrant init https://vagrant-osx.nyc3.digitaloceanspaces.com/osx-sierra-0.3.1.box
vagrant up

并且您有一个MACOS虚拟机。但是根据Apple的EULA,您仍然需要在MacOS硬件上运行它:D但是,在任何地方,都有一些擦除MacOS并安装Ubuntu:D的怪胎

不幸的是,您不能使用SSH X-forwarding选项从内部运行编辑器。


3
您是否需要能够运行GUI编辑器才能使用Xcode构建应用程序,或者可以通过CLI进行操作?
Jose V

26

我真的很想发表评论,而不是回答。但准确地说,OSX不是基于BSD的,而是NeXTStep的发展。NeXTStep OS使用CMU开发的Mach内核。它最初是作为MicroKernel设计的,但是由于性能限制,他们最终决定需要将API的Unix部分包含在内核本身中,因此需要一个BSD兼容的“服务器”(最初旨在处理与BSD兼容的请求)内核消息)移入内核,使其成为单片内核。它在编程API中可能与BSD兼容,但不是BSD。

其余的OS包含ObjectiveC(在Stepstone和GNU / GCC的Richard Stallman之间安排)和GUI,该GUI基于一种称为“ Display Postscript”的技术……有点像X Server,但是带有postscript命令。OS X将Display Postscript更改为Display PDF,并将一般硬件要求增加了1000倍(NeXT可以在8-16MB中运行,现在需要GB)。

由于GCC与Objective C和NeXT紧密结合,因此,在Linux上原生运行XCode的最佳选择是利用GNUStep库进行移植(如果您能掌握源代码,祝您好运)。最初是为NextStep和OpenStep兼容性设计的,但我听说它们现在或多或少与Cocoa兼容,但是近二十年来我一直没有使用它。当然,这只能使您达到ObjC的水平,而不能达到Swift的水平,而且我不知道Apple是否打算将其开源。


9

如果您运行VMware Player或Workstation(或者可能是VirtualBox,我不确定它是否支持Mac OS X,但可能会支持),然后运行Mac OS X Server(无法合法地对客户端进行虚拟化)。当然,在这种情况下,您正在OS X上运行XCode,但是您的主机可以是linux。


5
确实有可能在VirtualBox中运行OSX。我以这种方式运行10.8山狮。您必须遵循howto。它几乎可以完美地工作。我是丹麦人,所以我必须建立自己的键盘布局。
Kristian Spangsege 2012年

3
甚至Server也只能(合法)在Apple硬件上进行虚拟化。我认为在Apple硬件上运行Linux,然后在其客户机上运行Mac OS X是合法的(尽管我不确定这是否是有吸引力的选择)。@KristianSpangsege:很高兴听到它在VirtualBox下为您运行...我安装了大约5个不同的版本,而且所有版本都很慢。我认为这是所有虚拟化MacOSX的问题,直到我切换到VMware为止……那里几乎没有问题(偶尔会出现短暂的减速)。
johndodo 2014年


4

我认为您需要该插件的MonoTouch(不是免费的!)。

不,没有办法在Linux上运行Xcode。

对不起,所有的坏消息。:)


2

不,您听说过MonoTouch,它是用于iPhone开发的.NET / mono环境。但是您仍然需要Mac和官方的iPhone SDK。该模拟器是官方的Apple模拟器,它充当独立的IDE,使您不必在Objective C中进行编码,而在C#中进行编码

至少可以说这是一个有趣的项目。

编辑:显然,您现在可以在App Store上进行分发,这在早期是不可行的...。



0

如果要在其他操作系统上使用XCode,建议使用云计算。这样一来,您的应用程序就可以在Mac上进行开发,并且可以提交给App Store。



0

奇怪的是没有人建议使用KVM

它将为您提供几乎本机的性能,并且它是内置的Linux。去检查一下。

您会觉得您只使用Mac,然后在此处安装Xcode,甚至可以选择直接启动进入OSX GUI,而不是启动时进入Linux


-2

OSX 基于BSD,而不是Linux。您不能在Linux机器上运行Xcode。


1
它与运行的内核无关。而且MacOS几乎不是“基于BSD”,请参阅我上面关于历史的答案
Evan Langlois
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.