Entiendo por qué no puede desarrollar aplicaciones OS X en una computadora con Linux, pero ¿hay alguna buena razón técnica por la que no pueda desarrollar aplicaciones para iPhone y iPad en Linux? ¿Por qué no es posible compilar el código fuente de iOS en un ejecutable de iOS y ejecutarlo en un simulador de iOS en Linux o instalarlo en un dispositivo iOS de desarrollo?
¿Es solo porque XCode IDE es una aplicación de Cocoa?
Parece que puedes desarrollar aplicaciones de Android en cualquier tipo de plataforma. No veo por qué lo mismo no puede ser cierto para iOS.
Respuestas:
Mac OS X solo se puede ejecutar contractualmente en Apple Hardware. iOS requiere el marco Cocoa y tener acceso a una Mac para firmar el llavero. Si bien puede usar Objective-C en Linux usando las bibliotecas OpenStep, no puede enviar las aplicaciones que desarrolla a iOS debido a la falta de las bibliotecas correctas de la API de Cocoa y puede empujar a un dispositivo con jailbreak sin llaveros con un desarrollador completo cuenta, para vender dicha aplicación o incluso para que el público la descargue, debe seguir las reglas de Apple.
fuente
No hay una razón técnica particular, pero las herramientas de desarrollo que Apple proporciona solo se ejecutan en Mac, y no veo que tengan ninguna prisa por cambiar eso.
Con respecto a las herramientas de desarrollo de terceros, a Apple no le gustan públicamente, y dado el poder de veto absoluto de Apple sobre lo que tiene en la App Store, no es una gran idea invertir un tiempo de desarrollo significativo en su fabricación / uso.
(Una de las herramientas de desarrollo, el Simulador de iOS, está muy ligada a MacOS X por razones técnicas sólidas. AFAIK es en realidad una envoltura delgada entre iOS y las API de MacOS X muy similares, que sería infinitamente más difícil de hacer en otro sistema operativo Tendría que comenzar de nuevo desde cero y probablemente terminar con algo tan lento y horrible como el emulador de Android)
fuente
Depende de lo que entiendas por "razón técnica"
Estrictamente hablando, no creo que haya una razón técnica por la que las aplicaciones de iOS no se puedan desarrollar en Linux. Se requeriría alguna entidad, ya sea Apple o un grupo de hackers emprendedores / talentosos, para crear una cadena de herramientas (compiladores, tal vez un IDE, algo para obtenerlo en el teléfono).
Entonces, si por "razón técnica" te refieres a "algo especial sobre el Macintosh que es imposible y no podría existir en otra plataforma", entonces no, no creo que exista. No hay un chip especial en Macintosh que sea necesario para esto, por ejemplo.
Si por "razón técnica" quieres decir "algo que me impide poder hacerlo hoy", entonces sí, todo el bit de código firmado no existe en Linux y, a menos que Apple lo transfiera, ese es el juego de pelota.
fuente
Creo que debería decir que puedes desarrollar para iOS en otras plataformas, simplemente no puedes construir aplicaciones finales en ellas.
Se ha explicado en la respuesta aceptada por qué no puede compilar fuera de OS X, pero hay muchas herramientas de desarrollo que le permiten escribir aplicaciones iOS en otras plataformas.
Algunas de las herramientas de desarrollo que he usado que permiten esto:
Qt Framework (C ++ y Qml): las aplicaciones se pueden escribir en Windows o Linux, luego la aplicación iOS se crea con XCode en OS X.
Unity3D (C #, UnityScript y Boo): puede desarrollar en Windows y, para generar un iOS en cualquier plataforma, genera un proyecto XCode. Esto también permite una mayor integración con otro código Objective-C.
Xamarin (C #): puede desarrollar en Windows (y creo que Linux) y utilizar una máquina con OS X como host de compilación.
Kivy (Python): también genera proyectos XCode.
Y puede encontrar muchos más proyectos como estos, especialmente una vez que comience a buscar marcos de aplicaciones web híbridas y móviles como Appcelerator.
fuente
No hay ninguna razón técnica para no poder desarrollar aplicaciones iOS en Linux. De hecho, ya sucede en Windows en Delphi XE. Allí puede desarrollar sus aplicaciones ios totalmente en Windows. Al final, lo único que se necesita es que sus aplicaciones deban estar firmadas. Esto solo se puede hacer en una Mac.
fuente
Hay una razón técnica por la que Xcode no permitirá el desarrollo de aplicaciones iOS en otros sistemas.
iOS es similar en muchos aspectos a OS X. Muchos de los marcos son idénticos o muy cercanos. El simulador de iOS hace uso de eso para proporcionar un entorno de prueba muy rápido. Cuando Xcode compila una aplicación para que se ejecute en el simulador, crea binarios x86 que se vinculan con los marcos que en su mayoría se reducen a los marcos de OS X. Terminas con una compilación de depuración que se ejecuta de forma nativa en tu Mac, que tiene un gran rendimiento.
Si observa Android, crea aplicaciones independientes de la plataforma que luego se emulan en un emulador de Android u otro. Esto ejecuta una máquina virtual que ejecuta toda la pila de Android para que pueda depurarla. Hay emuladores que son más rápidos que otros, pero todos son mucho más lentos que el simulador. Sin embargo, el beneficio es que son multiplataforma.
Para que Apple permita que las aplicaciones de iOS se creen en otros sistemas, necesitarían portar los marcos a esos sistemas operativos para poder escribir un simulador, o tendrían que construir un emulador. Cualquiera de los dos sería una gran parte del trabajo que tomaría tiempo para construir nuevas características.
fuente
Si bien no puede firmar aplicaciones para iOS en Linux, y así distribuirlas a través de los métodos aceptados, puede desarrollar (con las mismas API) en Linux usando Theos. Esta es la cadena de herramientas utilizada por la comunidad jailbreak para desarrollar aplicaciones para iOS, y es multiplataforma. Si su dispositivo iOS tiene jailbreak, creo que podrá enviar la aplicación compilada a su dispositivo a través del dispositivo libimobile, pero alguien puede corregirme si me equivoco.
Alguna información más: http://iphonedevwiki.net/index.php/Theos
Planeo intentar esto al día siguiente más o menos, y proporcionaré actualizaciones.
fuente