¿Cómo puedo desarrollar para iPhone usando una máquina de desarrollo de Windows?
¿Hay alguna forma de jugar con el SDK de iPhone en una máquina con Windows? ¿Hay planes para una versión SDK de iPhone para Windows?
La única otra forma que se me ocurre de hacer esto es ejecutar una imagen de VM de Mac en un servidor VMWare que se ejecute en Windows, aunque no estoy muy seguro de qué tan legal sea.
Ciertamente es posible desarrollar en una máquina con Windows; de hecho, mi primera aplicación se desarrolló exclusivamente en la antigua Dell Precision que tenía en ese momento :)
Hay tres rutas;
- Instale OSx86 (también conocido como iATKOS/Kalyway) en una segunda partición/disco y arranque dual.
- Ejecute Mac OS X Server en VMWare (Mac OS X 10.7 (Lion) en adelante, lea la actualización a continuación).
- Utilice un marco y/o conjunto de herramientas que permita desarrollar en Windows, como Delphi XE4 con el servicio mac-in-cloud, que puede compilar sin necesidad de un dispositivo MacOS. Este es un conjunto de herramientas comerciales, pero el soporte de componentes y bibliotecas está creciendo.
Otras menciones honoríficas son Flutter , Xamarin y similares; que al final puede necesitar un dispositivo MacOS real para la compilación final (pero puedes probar en Android hasta entonces, ya que son multiplataforma).
La primera ruta requiere modificar (o usar una imagen premodificada) de Leopard que se pueda instalar en una PC normal. Esto no es tan difícil como podría pensar, aunque su relación éxito/esfuerzo dependerá de qué tan cerca coincida el hardware de su PC con el hardware de Mac; por ejemplo, si está ejecutando un Core 2 Duo en una placa base Intel, con una NVidia. tarjeta gráfica te estás riendo. Si está ejecutando una máquina AMD o algo así sin SSE3, se vuelve un poco más complicado.
Si compra (o ya posee) una versión de Leopard, entonces esta es un área gris ya que el CLUF de Leopard establece que solo puede ejecutarlo en una máquina "Etiquetada por Apple". Como muchos señalan, si pegas una pegatina de Apple en tu PC, probablemente estés cubierto.
La segunda opción es más costosa. El EULA para la versión de estación de trabajo de Leopard impide que se ejecute bajo emulación y, como resultado, VMWare no admite esto. El servidor Leopard, sin embargo, PUEDE ejecutarse bajo emulación y usarse para fines de escritorio. Sin embargo, el servidor Leopard y VMWare son caros.
Si está interesado en la opción 1), le sugeriría comenzar en Insanelymac y leer las secciones de OSx86.
Sin embargo, creo que deberías considerar si el tiempo que invertirás valdrá la pena el dinero que ahorrarás. Fue para mí porque disfruto jugando con este tipo de cosas y comencé durante las primeras versiones beta del iPhone, meses antes de que su App Store estuviera disponible.
Alternativamente, puedes comprar una Mac Mini de baja especificación en eBay. No necesitas mucha potencia para ejecutar el SDK y siempre puedes venderlo más adelante si decides detener el desarrollo o comprar una Mac mejor.
Actualización: no puede crear una máquina virtual cliente Mac OS X para OS X 10.6 y versiones anteriores. Apple no permite que estos sistemas operativos de cliente se virtualicen. Con Mac OS X 10.7 (Lion) en adelante, Apple ha cambiado su acuerdo de licencia en lo que respecta a la virtualización. Fuente: Base de conocimientos de VMWare
Xamarin es una opción sólida. Fue adquirido por Microsoft y ahora está integrado directamente en Visual Studio. Codificas en C#. Con todas las actualizaciones y funciones que están agregando, puede hacer de todo menos enviar a la App Store desde Windows, incluso compilar, compilar e implementar en un dispositivo iOS.
Para juegos, Unity 3D es una gran opción. El editor es de uso gratuito para el desarrollo e incluso para la distribución (si tiene menos de 100.000 dólares de ingresos anuales). Unity es compatible con iOS, Android y la mayoría de las otras plataformas. Es posible utilizar la función "Cloud Build" de Unity para evitar tener que usar una Mac para la implementación, aunque de forma predeterminada, Unity en realidad escupe un proyecto Xcode cuando compila para iOS.
Otras opciones:
PhoneGap (html/javascript) también funciona. No es tan bueno para juegos, pero es bastante decente para aplicaciones GUI normales.
Flutter (dart) es un marco de desarrollo de aplicaciones móviles multiplataforma gratuito de Google. Escribe tu código en Dart.
React Native (javascript) es otro marco multiplataforma popular creado por Facebook.
Tenga en cuenta que: para todas estas opciones, todo o la mayor parte del desarrollo se puede realizar en Windows, pero aún se requiere un dispositivo MacOS para crear un binario y enviarlo a la App Store. Una opción es conseguir un MAC Mini económico para realizar la construcción final.
Si tiene un iPhone con jailbreak, puede instalar la cadena de herramientas iphone-gcc en el iPhone a través de Cydia y de esa manera puede compilar las aplicaciones en el iPhone. Las aplicaciones desarrolladas de esta manera aún se pueden enviar a la App Store.
Y aunque Valdez dijo que es un área gris (que lo es), el jailbreak es increíblemente fácil y prácticamente libre de riesgos. Sí, anula tu garantía, pero puedes hacer una restauración y nunca lo sabrán.
La mayoría de las "llamadas soluciones de Windows para el desarrollo de iOS sin Mac" requieren que Mac al final solo firme y envíe a la tienda de aplicaciones. Revisé algunos, aunque no todos (¿quién tiene tiempo?)
Al final, es demasiado complicado aprender "su forma fácil y súper especial de programar iOS sin Objective-C", tienen muchos errores. Realmente el objetivo que se están planteando es, en mi opinión, inalcanzable.
Además, muchas veces te obligan a usar declaraciones equivalentes a Objective-C simplemente en otro idioma. Parecen iguales, pero siempre hay diferencias sutiles que debes aprender además de obj-c. Lo cual además tiene aún menos sentido, porque ahora en lugar de aprender menos hay que aprender más. ¿Dónde está entonces la ganancia? También cuestan mucho porque son muy difíciles de desarrollar.
Muchos carecen de cualquier capacidad de depuración.
En mi sincera opinión, si eres un desarrollador de iOS empedernido, seguro que compras el mejor Mac y aprende Objective-C. Es caro y lleva tiempo, pero si es tu camino, merece la pena.
Para un uso ocasional, es más fácil alquilar un servicio Mac remoto, como XCodeClub.com