¿Iniciando el desarrollo de aplicaciones para iPhone en Linux? [cerrado]

529

Escuché que necesitas obtener una Mac si quieres desarrollar aplicaciones para iPhone. ¿Es esto cierto?

¿Es posible desarrollar aplicaciones para iPhone usando Linux? En caso afirmativo, ¿qué necesito y dónde descargo las herramientas necesarias?

javac
fuente
2
¿Alguien puede editar este s / Linux / unix para generalizarlo?
Buena persona el
55
@GoodPerson Entonces estaría borrando la línea entre OS X y otros sistemas operativos, de eso se trata esta pregunta.
Sr. Lister
2
Una de las partes más importantes de información que he encontrado. absolutamente en el tema, diría ...
Marco Faustinelli
Gran tutorial de 2017 por Andy Smith
sondra.kinsey

Respuestas:

303

Para proporcionar una respuesta diferente, estoy ejecutando OS X y Xcode en una máquina virtualizada (VMware) en Linux. La CPU es un Core2Quad (Q8800), y es perfectamente rápida. Encontré una máquina virtual preconstruida en línea (lo dejaré para que la encuentres) El desarrollo de Xcode / iPhone funciona perfectamente, al igual que la depuración a través del USB en el teléfono.

En realidad me sorprendió mucho, pero no he tenido ningún problema.

Caos
fuente
11
Entonces, utilizando su enfoque, ¿puede firmarlo y distribuirlo en iTunes?
Eldelshell
43
Sí, no hay problemas. Estás usando XCode, la firma funciona bien, ahora tengo una aplicación de producción en la tienda, enviada desde la VM. No lo nombraré por razones obvias.
Caos
18
@Chaos: ¿Podría publicar enlaces a lo que utilizó exactamente para ejecutar su configuración?
Glycan
44
¿Se puede confiar en una VM preconstruida? Me refiero a software incrustado culpable, puertas traseras ...
DummyBeginner 03 de
2
Okay. Mi opinión sobre esto. Una vez que haya desarrollado la aplicación, puede usar este servicio para publicar macincloud.com
Fabrizio Bertoglio
75

La respuesta a esto realmente depende de si quieres o no desarrollar aplicaciones que luego se distribuyan a través de la tienda de iPhone. Si no lo hace, y no le importa desarrollar para la multitud de iPhone "con jailbreak", entonces es posible desarrollar desde Linux.

Consulte la página de este capítulo para obtener una guía completa (aunque un poco compleja) sobre qué hacer:

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

Comedor de dioses
fuente
26

Parece ser cierto hasta ahora. El único SDK disponible de Apple solo se dirige al entorno MacOS. Estoy molesto por eso, pero estoy buscando comprar una Mac ahora, solo para hacer el desarrollo del iPhone. Realmente no me gusta lo que están haciendo, y espero que salga un buen SDK para otros entornos, como Linux y Windows.

Obstáculos con respecto al SDK:

El iPhone SDK y el software libre: no son iguales

Apple lanzó recientemente un kit de desarrollo de software (SDK) para iPhone, pero si esperaba portar o desarrollar software original de código abierto con él, la noticia no es buena. La firma de códigos y las condiciones de confidencialidad hacen que el software libre sea una opción imposible.

El SDK en sí es una descarga gratuita, con la que puede escribir programas y ejecutarlos en un simulador de software. Pero para poder lanzar el software que ha escrito, debe inscribirse en el Programa de Desarrolladores de iPhone, un paso separado de la descarga del SDK y que requiere la aprobación de Apple.

Creo que es bastante elitista para ellos pensar que solo los usuarios de macos son lo suficientemente buenos como para escribir programas para su teléfono, y el hecho de que necesites comprar una licencia de $ 100 si quieres publicar tus cosas, realmente hace que sea más difícil para el programador aficionado. Sin embargo, si eso es lo que necesitas hacer, estoy planeando saltar a través de sus aros; Realmente me gustaría desarrollar algunas cosas en mi iPhone.

stephenbayer
fuente
99
Como se ha dicho antes, no creo que sea culpa del elitismo aquí. XCode y todas las demás herramientas de desarrollo (con la excepción de elementos de bajo nivel como GCC) están escritas en Cocoa, al igual que todos los marcos de iPhone. Tendrían que portar todo esto a otros sistemas operativos primero. Esa no es una tarea pequeña.
Brad Larson
24
Avíseme cuando Microsoft lance Visual Studio para Linux y Mac ...
Stephen Darlington
12
Avíseme cuando Microsoft lance Visual Studio, Access, Frontpage, XNA, DirectX, Office (con todas las características), Movie Maker, Visio, IIS o Exchange para Mac / Linux.
Brock Woolf
97
Avíseme cuando Microsoft haga frente al EULA para ejecutar Visual Studio, Access, Frontpage, XNA, DirectX, Office, Movie Maker, Visio, IIS o Exchange en (Dar) Wine.
lfaraone
55
@MarceloMason Tipo de. Es Visual Studio Code , no el IDE completo.
Stephen Darlington
20

No solía ser un proyecto dedicado a resolver este defecto: iPhone-dev

El objetivo del proyecto iphone-dev es crear una cadena de herramientas gratuita, portátil y de alta calidad para permitir el desarrollo del iPhone de Apple y otros dispositivos integrados basados ​​en la plataforma ARM / Darwin.

Johan Boulé
fuente
44
El proyecto no parece estar en desarrollo o mantenimiento regular desde el sitio (por ejemplo, las entradas de Wiki sobre la construcción de la herramienta / portabilidad son de febrero de 2010).
ely
44
@Señor. F, de hecho está muerto.
Johan Boulé
13

Con respecto a la cadena de herramientas alternativas, el sitio de Saurik es útil, pero para el último desarrollo de firmware, indica que se basa en el iPhone y se mantiene alejado de indicar que es posible que deba copiar los archivos de firmware de iPhone necesarios en su entorno Linux. No es imposible, pero solo requiere trabajo adicional, especialmente para firmar el código (también existen soluciones alternativas abiertas).

Además, eche un vistazo a otras guías (para la misma cadena de herramientas) que lo abordan de manera más metódica.

Sugeriría que aún haga la compilación final y la firma y el empaque del código en XCode (lo que puede significar tomar prestada la Mac de alguien) en caso de que tenga problemas al enviar la aplicación a Apple. El uso de la cadena de herramientas alternativa abre (al menos en Mac) la posibilidad de usar otros IDEs que no sean XCode para desarrollar la aplicación y recurrir nuevamente a XCode para la implementación y prueba con el simulador.

Por supuesto, si consigue que la firma de código / generación de certificados funcione desde la línea de comandos fuera de XCode, puede instalar un certificado en su iPhone real y probar allí (instalando la aplicación a través de iTunes con su certificado).

dljava
fuente
7

La única forma en que sé desarrollar en Linux para iPhone sería instalar Vmware y trabajar para que OS X se ejecute en una máquina virtual. Dicho esto, hay algunas preocupaciones "legales" al hacerlo. Se informa que OS X Server se puede virtualizar, pero en cuanto a la historia de desarrollo, no lo sé.

Si eres realmente serio, eso es lo que investigaría.

Buena suerte.

Keith Elder
fuente
44
He probado la opción VMWare y, al menos en mi hardware (T5200 Core2, 2M ram), es inusualmente lenta. Mi amigo tuvo una experiencia similar.
Desfile del
3
Yo también. Lento, lento, lento. Ni siquiera quieres intentarlo.
Nosredna
55
@Parand Por supuesto que va a ser lento en 2M ram, ¡me sorprende que incluso arranque!
Jeshurun
2
Es posible que desee probar VirtualBox en lugar de vmware. VMWare está demasiado hinchado en mi opinión.
Harindaka
5

Puede usar Tersus (código abierto), y le permite exportar la aplicación como un proyecto Xcode.

Ofer Brandes
fuente
Tersus Studio generates native iPhone applications in the form of Xcode projects that you can compile and sign using Apple's iPhone SDK.Por lo tanto, no podrá compilar y firmar una aplicación nativa de iOS
MarSoft
5

Es posible que pueda escribir código en una caja de Linux que eventualmente se encontrará en un iPhone o iPad, pero en última instancia necesitaría una Mac para probar o implementar el código en el iPhone o enviarlo a la tienda de aplicaciones. Entonces, en última instancia, necesita una Mac, por lo que también podría hacer el trabajo en la Mac, con todas las herramientas que proporciona Apple. Existen alternativas a Xcode y Objective-C, como Monotouch, pero también utilizan las herramientas de Apple.

Con algún trabajo puede ejecutar OS X en una VM en Linux. Sin embargo, debo señalar que esto romperá el acuerdo de licencia de OSX, incluso si compra la copia de OSX, ya que solo tiene licencia para ejecutarse en el hardware de Apple.

Lamento darle esta noticia: el ecosistema alrededor del iPhone / iPad está muy estrictamente controlado.

EDITAR: Una gran excepción a esto es escribir una aplicación web para el iPhone. Hay algunas aplicaciones web excelentes para el iPhone que son casi tan buenas como la experiencia del usuario como una aplicación nativa. Sin embargo, interpreté su pregunta sobre el desarrollo de aplicaciones nativas. Las aplicaciones web, aunque el usuario puede crear un icono para lanzarlas, siguen siendo ciudadanos de "segunda clase".

iandotkelly
fuente
44
Aunque puede estar permitido ejecutar Lion en virtualización si está ejecutando Linux en una Mac.
Cajunluke
4

He tenido éxito construyendo aplicaciones de iOS en Linux usando la cadena de herramientas de clang de iOS de cjacker . Básicamente, consiste en las herramientas ascendentes de clang y llvm de su distribución de Linux, un puerto de Linux del enlazador de Apple y algunas herramientas adicionales para ayudar a simplificar el proceso de construcción (como convertir proyectos de xcode a formato Makefile).

La instalación requiere algunos pasos, pero usted es un desarrollador de software, por lo que estaría acostumbrado a eso. Publiqué un tutorial actualizado para Debian 7 (Wheezy) en línea:

http://www.ninthavenue.com.au/how-to-build-an-ios-toolchain-for-linux-debian-7

De lo contrario, desea seguir las instrucciones genéricas que son un poco más antiguas:

http://code.google.com/p/ios-toolchain-based-on-clang-for-linux/wiki/HowTo_en

Buena suerte.

Roger Keays
fuente
2

Hay un marco llamado Rodas .

El concepto se basa en Ruby on Rails y usted desarrolla su aplicación móvil en Ruby y HTML, y puede escribir su código en un entorno Linux. Luego puede crear una cuenta en Rhohub , donde agrega el código (a través de GitHub ), y le permite compilarlo para iPhone, Blackberry, Android, Windows Mobile y Symbian, todo con el mismo código. No tiene que codificar en Objective-C para iPhone, ni Java para Android, etc. Hace las conversiones por usted. Todo lo que necesita hacer es atenerse a las Reglas para crear una aplicación de iPhone (o el teléfono para el que desea desarrollar) para que pueda aceptarse en iTunes (o en el mercado equivalente).

Esto le permitirá agregar la aplicación a iTunes también.

Sin embargo, no he encontrado ningún emulador, lo que significa que para probar su aplicación necesita ponerla en un iPhone, lo cual es una misión.

Estoy usando esta opción porque quiero crear aplicaciones para todos los teléfonos y ya uso Ruby on Rails. Si solo quieres hacer una aplicación para un iPhone, entonces invierte en una Mac.

Espero que esto ayude.

Theo Scholiadis
fuente
1

Tienes razón, los teléfonos sin jailbreak están limitados a la tienda de aplicaciones de Apple y Apple "tiene el derecho" de hacer cumplir cualquier regla, es un territorio totalmente libre. Sin embargo, durante el desarrollo, uno no tendrá que lidiar con Apple en absoluto. Puede usar, por ejemplo, rsync para cargar el código en el dispositivo y probarlo.

Johan Boulé
fuente
¿Este proyecto supera el problema que presentó Stephen Cox? "Nunca conseguirás que Apple apruebe tu aplicación si no está desarrollada usando Xcode. Nunca. Y si hackeas el SDK para desarrollar en Linux y Apple se entera" Gracias
aunque es cierto el
libmobiledevice en realidad tiene una interfaz decente para instalar aplicaciones sin necesidad de rsync / ssh en un iDevice.
Dwight Spencer
1

Hasta cierto punto, sí, es posible. Puede escribir el código Objective-C y configurar sus proyectos. Incluso puede probar las partes C y C ++ de su código con gcc.

Lo que no puedes hacer:

  • Use Interface Builder para configurar su interfaz, ya que es solo para Mac. (No es obligatorio, pero se recomienda).
  • Compile el código que usa las clases Cocoa de Apple, no existen en Linux.
  • Código de prueba en el simulador: no hay uno para Linux.
  • Compile el código para dispositivos reales o para App Store: todo esto requiere herramientas que Apple solo proporciona para OS X.
Cajunluke
fuente
cuando dices que las clases no existen, ¿qué quieres decir? Solo necesito los encabezados, Apple lo vinculará de todos modos. Así es como funciona el envío de aplicaciones, AFAIK.
Janus Troelsen
1

Necesitas obtener mac para ello. Hay varias cadenas de herramientas disponibles (como win-chain) que realmente le permiten escribir y construir aplicaciones de i Phone en Windows. Hay varios tutoriales asociados para construir el código Objective C en Windows. Pero hay un problema, las aplicaciones desarrolladas por lo tanto funcionarán solo en Jail broken i Phones.

Hemos visto algunos trucos para superar eso y llegar a la App Store, pero a medida que Apple sigue actualizando los SDK, las cadenas de herramientas necesitan actualizaciones periódicas. Es complicado inventarlo todo el tiempo. Si desea preparar la aplicación, también puede obtener ayuda de arcapps, sus aplicaciones de lanzamiento a un precio razonable. desarrollo de aplicaciones para iphone

Isabella Jacob
fuente
1

Intenté portar cocos2d-iphone a GNUstep para que puedas desarrollar el juego basado en cocos2d. Sin embargo, para publicar necesitas una mac. cocos2d-GNUstep .

usuario602592
fuente
0

Recomendaría obtener una Mac porque el simulador de iOS es increíble para probar en las primeras etapas de una aplicación. Pero sí sé de una pequeña empresa con la que trabajamos que se desarrolla utilizando Unity para que no necesiten una gran cantidad de equipos Mac. De esa manera, solo necesitan una Mac para la oficina y eso es solo para compilar la compilación final. También significa que funciona en Android, pero realmente depende de cuál sea tu edificio porque es un motor de juegos. Es posible que desee buscar aplicaciones web utilizando marcos como Sencha Touch Mobile

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

dciso
fuente
-5

Si valoras tu tiempo, ¡compra una Mac! No sé lo suficiente sobre las opciones de desarrollo de Linux para ofrecer una solución viable, pero parece que los métodos propuestos implican un trabajo bastante indirecto. Si planea escribir y vender seriamente aplicaciones para iPhone, creo que podría recuperar fácilmente el costo de una Mac Mini o Macbook. :-)

Ben Gotow
fuente
44
Ahora que hay algo así como 50,000 aplicaciones, no es necesariamente fácil hacer mucho. Los días de ensaladas tal vez se hayan ido.
Nosredna
@Nosredna, por mi parte, me gusta creer que los días de ensalada están aquí de nuevo. Pero en serio, tienes razón.
Wyatt8740
Amigo, si estamos buscando una alternativa, es porque comprar una no es una opción disponible.
Roger Russel
-5

Apple nunca aprobará su aplicación si no está desarrollada con Xcode. Nunca. Y si hackea el SDK para desarrollarlo en Linux y Apple se entera, no se sorprenda cuando lo atiendan. Soy miembro del programa de desarrollo de ADC y iPhone. Confía, Apple es MUY serio sobre esto.

No se arriesgue, compre un Macbook o Mac mini (sí, un mini puede ejecutar Xcode, aunque lentamente, aumente la RAM si va con el mini). Además, aunque he visto OS X pirateado para ejecutarse en VMware, nunca he visto a nadie que ejecute Xcode en VM. Buena suerte. Y revisaría el EULA antes de que pases por el problema.

PD: Después de leer lo anterior, sí, estoy de acuerdo. Si hackea el SDK y desarrolla en Linux, al menos haga el paquete final en una Mac. Y enviarlo a través de una Mac. Apple no ejecuta el código línea por línea, así que dudo que lo capten. Pero hombre, eso es mucho de si y trabajo. Aunque sea divertido de hacer. :)

Stephen Cox
fuente
1
Nuevos minis están bien para la tarea. Creo que cuestan alrededor de $ 600 y puede usar casi cualquier mouse, teclado y monitor. ¡Asegúrese de calibrar el monitor! XCode parece funcionar bastante bien en mi mini no expandido.
Nosredna
77
Xcode funciona bien en una máquina virtual Mac OS X.
dave1010
2
Apple aprueba las aplicaciones de Air SDK todo el tiempo, interacción cero con XCode. Puede hacer toda la compilación en Linux / Windows.
j_mcnally