¿Se puede ejecutar Xcode en Linux?

186

¿Se puede ejecutar Xcode en Linux? Mac OS X se basó en BSD Unix, entonces, ¿es posible?

Por lo que he escuchado, hay un complemento MonoDevelop que tiene un simulador de iPhone.

Mohit Deshpande
fuente
2
Creo que esto es lo que estás buscando Apple lanzó rápidamente para reemplazar xcode para linux ios devs cnet.com/news/apple-introduces-swift-2
PauAI
Lanzaron Swift, no Xcode.
Antzi
Aún no está bien. Es solo que el lenguaje es de código abierto y se publica en Linux junto con una biblioteca estándar. No está destinado a hacer aplicaciones iOS o reemplazar Xcode. Más bien hacer aplicaciones de Linux con rapidez. Por supuesto, esto simplificaría el trabajo de las personas que desean hacer un compilador cruzado.
Antzi

Respuestas:

399

La cadena de herramientas de bajo nivel para Xcode (la familia de compiladores gcc, el depurador gdb, etc.) es de código abierto y común a las plataformas Unix y Linux. Pero el IDE (editor, gestión de proyectos, indexación, navegación, sistema de compilación, depurador gráfico, modelado de datos visuales, sistema SCM, refactorización, instantáneas de proyectos, etc.) es una aplicación Mac OS X Cocoa y no es portátil.

cdespinosa
fuente
76
1 excelente ruptura por debajo de lo que es común y lo que está centrada en el mac
curtisk
11
Sin mencionar que ejecutarlo en otro sistema operativo probablemente rompe su EULA. Apple es particularmente tacaño cuando se trata de acuerdos de licencia.
jpaugh
1
Esto no es 100% correcto (o actualizado). GCC estándar no puede producir archivos de objetos Mach-O, pero Clang sí. Pero aún necesita el ld de Apple para vincular el binario final. Darling puede ejecutar la cadena de herramientas Xcode original en Linux (pero no Xcode IDE).
LubosD
38

Nadie sugirió Vagrant todavía, así que aquí está, Vagrant box para OSX

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

y tienes una máquina virtual MACOS. Pero de acuerdo con el EULA de Apple, aún necesita ejecutarlo en el hardware de MacOS: D Pero en cualquier lugar, aquí hay uno para todos los geeks que borraron MacOS e instalaron Ubuntu: D

Desafortunadamente, no puede ejecutar los editores desde adentro usando la X-forwardingopción SSH .

bbozo
fuente
3
¿Necesita poder ejecutar los editores de GUI para crear aplicaciones con Xcode o puede hacerlo desde la CLI?
Jose V
26

Realmente quería comentar, no responder. Pero para ser precisos, OSX no se basa en BSD, es una evolución de NeXTStep. El sistema operativo NeXTStep utiliza el núcleo Mach desarrollado por CMU. Originalmente se diseñó como un MicroKernel, pero debido a limitaciones de rendimiento, finalmente decidieron que debían incluir la porción Unix de la API en el núcleo mismo y, por lo tanto, un "servidor" compatible con BSD (originalmente destinado a procesar solicitudes de compatibilidad BSD) mensajes del núcleo) se movió al núcleo, convirtiéndolo en un núcleo monolítico. Puede ser compatible con BSD en la API de programación, pero NO es BSD.

El resto del sistema operativo involucraba ObjectiveC (bajo acuerdos entre Stepstone y Richard Stallman de GNU / GCC) con una GUI basada en una tecnología llamada "Display Postscript" ... algo así como un servidor X, pero con comandos postscript. OS X cambió Display Postscript a Display PDF y aumentó los requisitos generales de hardware 1000 veces (NeXT podría ejecutarse en 8-16MB, ahora necesita GB).

Debido a la estrecha unión de GCC y Objective C y NeXT, su mejor opción para ejecutar XCode de forma nativa en Linux sería hacer un puerto (si puede obtener la fuente, buena suerte) utilizando las bibliotecas GNUStep. Originalmente diseñado para la compatibilidad con NextStep y luego OpenStep, he oído que ahora son más o menos compatibles con Cocoa, pero no he jugado con ninguno de ellos en casi 2 décadas. Por supuesto, eso solo te lleva hasta ObjC, no Swift, y no sé si Apple lo va a abrir.

Evan Langlois
fuente
9

Si ejecuta VMware Player o Workstation (o tal vez VirtualBox, no estoy seguro de si es compatible con Mac OS X, pero puede), y luego Mac OS X Server (el cliente no se puede virtualizar legalmente). Por supuesto, en este caso está ejecutando XCode en OS X, pero su máquina host podría ser Linux.

Ian
fuente
55
De hecho, es posible ejecutar OS X dentro de VirtualBox. Corro 10.8 Mountain Lion de esta manera. Debes seguir un tutorial. Funciona casi a la perfección. Soy danés, así que tuve que construir mi propio diseño de teclado.
Kristian Spangsege
3
Incluso el servidor solo se puede (legalmente) virtualizar solo en el hardware de Apple; Sin embargo, creo que sería legal ejecutar Linux en el hardware de Apple y luego Mac OS X como invitado (aunque no estoy seguro de que sea una opción atractiva). @ KristianSpangsege: me alegra saber que se ejecuta en VirtualBox ... Instalé unas 5 versiones diferentes y todas fueron muy lentas. Pensé que era un problema con todos los MacOSX virtualizados hasta que me cambié a VMware ... casi no hay problemas allí (todavía se produce una breve desaceleración ocasional).
johndodo
7

Si no puede pagar miles de dólares por una Mac decente, entonces hay una opción para ejecutar OSX y XCode en la nube:

http://www.macincloud.com/

Roman Kagan
fuente
4

Creo que necesitas MonoTouch (¡no gratis!) Para ese complemento.

Y no, no hay forma de ejecutar Xcode en Linux.

Perdón por todas las malas noticias. :)

andyvn22
fuente
2

No, has oído hablar de MonoTouch que es un entorno .NET / mono para el desarrollo de iPhone. Pero aún necesita una Mac y el SDK oficial de iPhone. Y el emulador es el oficial de Apple, esto actúa como un IDE separado y le permite no tener que codificar en el Objetivo C, sino que codifica en c #

Es un proyecto interesante por decir lo menos ...

EDITAR: aparentemente, puede distribuir en la tienda de aplicaciones ahora, al principio eso era un no ir ...

curtisk
fuente
1

La opción más fácil para hacerlo es ejecutar una VM con una copia OSX.

Hedron Dantas
fuente
0

Si desea XCode en otro sistema operativo, le sugiero computación en la nube. De esta forma, su aplicación se está desarrollando en una Mac y se puede enviar a la App Store.

Josh Guyette
fuente
0

Era extraño que nadie sugiriera KVM .

Le proporcionará un rendimiento casi nativo y está integrado en Linux. Ve y échale un vistazo.

sentirá que está usando solo Mac y luego instalará Xcode allí, incluso puede optar por iniciar directamente en la GUI de OSX en lugar de Linux en el inicio

Praveen Shahi
fuente
-2

OSX se basa en BSD , no en Linux. No puede ejecutar Xcode en una máquina Linux.

rfunduk
fuente
1
No tiene nada que ver con qué núcleo se está ejecutando. Y MacOS apenas está "basado en BSD", vea mi respuesta anterior para la historia
Evan Langlois