Ver la versión completa : C# Probando el desarrollo en iOS
DrumpiFast
18/09/2017, 10:44
Hola a todos:
Sé que hace tiempo que no me paso por aquí, pero el trabajo me está consumiendo más tiempo de la cuenta (y del que debería).
El caso es que soy el prigao responsable de probar nuestra primera app en iOS, y de momento parece ser que soy el que más sabe del tema... que es cero.
Pues eso, que es nuestra primera app, y queremos ir probando qué tal se nos daría en el futuro, así que hemos remodelado un ejemplo en Xamarin y va de lujo en Android, pero no podemos portar a iOS por los problemas obvios. Comprar un Mac está descartado, ni siquiera un Mac-mini (lo he intentado, pero como sólo estamos tanteando el terreno, me han dicho que no, que como mucho, la licencia de desarrollador y punto) así que tenemos varias rutas a seguir, pero tengo dudas que quiero que me resolváis si podéis. Os las ordeno de más probable a menos.
- Vamos a intentarlo desde macincloud con las 24 horas de prueba, y luego con el pago mensual. Un servicio de alquiler online de equipos. Sólo necesitamos compilar, obtener los binarios y ver si la interfaz está correcta en un iPad que tenemos aquí, pero necesito saber si alguien ha usado ese servicio y si necesito previamente una cuenta de usuario apple y otra de desarrollador. No quiero llegar y perder el escaso tiempo que tengo en rellenar formularios.
- La otra opción es la de usar VMWare con MacOS. Ya lo he intentado en el equipo de desarrollo, pero ha sido un desastre porque tenía una procesador AMD. Tenemos el servidor donde virtualizamos máquinas y la idea era probar en una de ellas. ¿Es buena idea?
- La desesperada es usar Hackintosh. Todo el mundo me dice que me olvide, que si problemas, problemas y más problemas. ¿Incluso para una simple compilación?
Pues eso es todo de momento. Siento hacer preguntas tan obvias, pero mañana tengo que ponerme con las 24 horas de prueba, y hoy me han dicho que si no me voy a poner a portar, me ponga con otro proyecto, así que no puedo ponerme a investigar esto en profundidad (lo he ido haciendo, pero no puedo llegar más lejos), y hoy no voy ni a llegar a casa hasta la hora de acostarme.
Bonita forma de cumplir 35 años
^MiSaTo^
18/09/2017, 10:50
Siento decirte que tendreis que comprar un Mac si quereis trabajar en serio haciendo cosas para iOS... comprad un Mac Mini, no es lo mejor ni lo más potente pero sí lo más barato. Yo me fui a la fnac y compré uno de los que tenían del año anterior. Como era un modelo antiguo del que se querían desacer me lo dejaron por 400€ (cuando valía 700).
Esto mismo lo han hecho tb amigos míos con más o menos suerte.
DarkDijkstra
18/09/2017, 11:03
Yo creo que todo el mundo te va a decir lo mismo, que compréis un Mac... yo, como soy un pobretón y me aburría conseguí instalar "El Capitán" en mi PC de sobremesa y ahora arranca con Clover (tiene particiones Windows y MacOS) y puedo compilar sin problemas para iOS (por ejemplo cosas con Unity)
Obviamente yo lo hice por trastear y porque me apetecía perder un fin de semana, pero no es sencillo que te funcionen correctamente todos los drivers. Hay un sitio web donde tienes muchísima información, https://www.tonymacx86.com/ pero claro, si lo tenéis que hacer "para ayer" te lo recomendaría como última opción, ya que requiere un cierto esfuerzo.
^MiSaTo^
18/09/2017, 11:09
Yo creo que todo el mundo te va a decir lo mismo, que compréis un Mac... yo, como soy un pobretón y me aburría conseguí instalar "El Capitán" en mi PC de sobremesa y ahora arranca con Clover (tiene particiones Windows y MacOS) y puedo compilar sin problemas para iOS (por ejemplo cosas con Unity)
Obviamente yo lo hice por trastear y porque me apetecía perder un fin de semana, pero no es sencillo que te funcionen correctamente todos los drivers. Hay un sitio web donde tienes muchísima información, https://www.tonymacx86.com/ pero claro, si lo tenéis que hacer "para ayer" te lo recomendaría como última opción, ya que requiere un cierto esfuerzo.
Es una empresa. Si no quieren ser serios con esto... Vamos, así lo veo yo. Otra cosa que yo por gusto en mi casa quiera ver si pongo hackintosh o que.
Yo no me imagino programar sin un depurador, con el macincloud no vas a tener esa opción, al final gastareis mas dinero en horas perdidas, o pagando servicios en la nube y todo por no gastarse los 500€ que cuesta el mac mini básico.
DarkDijkstra
18/09/2017, 11:52
Es una empresa. Si no quieren ser serios con esto... Vamos, así lo veo yo. Otra cosa que yo por gusto en mi casa quiera ver si pongo hackintosh o que.
Pues eso mismo es lo que dicho ; )
¿Poderse? Se puede (preguntaba si era posible compilar simplemente)
¿Lo recomendaría para una empresa y encima con prisa? Pues, solo como última opción :brindis:
^MiSaTo^
18/09/2017, 11:54
Pues eso mismo es lo que dicho ; )
¿Poderse? Se puede (preguntaba si era posible compilar simplemente)
¿Lo recomendaría para una empresa y encima con prisa? Pues, solo como última opción :brindis:
Sí, si te estaba dando la razón xD Igual no se entendió bien :)
macincloud yo creo que para probar un día puede estar bien, pero para una app profesional en la que vas a trabajar 8 horas al día es un sacadineros. De lo poco que se de Xamarín, hay un código común, pero la interfaz es específica de cada plataforma, es decir usa clases UI de la plataforma de destino. No creo que sea darle a un botón y compilar.
Luego a saber que entorno te dan, se supone que tiene XCode instalado o asi lo tienes que contratar. Sino, te puedes tirar medio día en balde bajándolo. Para probar en el iPad sin licencia de desarrollador necesitas XCode 7 mínimo. Luego el soporte de puertos usb no se como será, si podrás enganchar el iPad en remoto.
DrumpiFast
19/09/2017, 09:51
Muchas gracias a todos.
Sí, básicamente es lo que he leído y lo que me han ido diciendo (incluso nos trajeron alguien con experiencia, que es el que nos enseñó Xamarin y Web Api, y le hice un interrogatorio a fondo sobre el tema). La cosa es esa, que tenemos que hacerle una demostración a un cliente sobre un iPad air 2 de una app que estamos desarrollando, pero como el tema del desarrollo móvil es nuevo aquí (de hecho, hace sólo un mes que estamos con ello, y el experto soy yo ^^U) está todo en pañales y estamos tanteando el terreno, así que supongo que lo que quieren es que evaluemos si merece la pena meternos en serio en iOS. Tened en cuenta que nosotros hacemos apps para profesionales, no para subirlos a la tienda (que lo mismo se da el caso, pero trabajamos con soluciones a medida de SAP).
Descuidad que, si la cosa se pone seria, obviamente voy a exigir un Mac. A mi no me tienen como los primeros años de GP2X, metiendo y sacando la SD para probar :D De momento, hoy me toca probar la versión trial de 24h gratis de macincloud, así que tiraré todo lo que pueda del emulador y haré las mínimas pruebas en el iPad.
Respecto a Xamarin, hay dos formas de trabajar: una es la que dice hardyx, usando Xamarin para la lógica del programa, y luego el parser para las UI de cada plataforma, pero la otra es usando las herramientas de Xamarin para la interfaz también, por lo que el código es totalmente portable. Bueno, a lo mejor hay que escribir cierto código específico para cada plataforma (las tabbed pages no fucionan en iOS y hay que emularlas, o algo de eso, aparte de los colores y más) y no tienes todas las herramientas que ofrecen de forma nativa, pero aun no he llegado a ese nivel (apenas llevo un par de meses, sólo he podido ir modificando una demo mientras llevaba adelante un par de proyectos más ^^U). Aun me estoy peleando con el concepto de "binding", algo que estoy odiando cada día que pasa (como usa strings en el proceso, depurar sus fallos es medio infierno, porque no te da ningún tipo de aviso).
Al menos puedo hacerlo en .net, que tenemos alguna cosa por aquí aun en VB6 por petición expresa del cliente :S
^MiSaTo^
19/09/2017, 10:02
Muchas gracias a todos.
Sí, básicamente es lo que he leído y lo que me han ido diciendo (incluso nos trajeron alguien con experiencia, que es el que nos enseñó Xamarin y Web Api, y le hice un interrogatorio a fondo sobre el tema). La cosa es esa, que tenemos que hacerle una demostración a un cliente sobre un iPad air 2 de una app que estamos desarrollando, pero como el tema del desarrollo móvil es nuevo aquí (de hecho, hace sólo un mes que estamos con ello, y el experto soy yo ^^U) está todo en pañales y estamos tanteando el terreno, así que supongo que lo que quieren es que evaluemos si merece la pena meternos en serio en iOS. Tened en cuenta que nosotros hacemos apps para profesionales, no para subirlos a la tienda (que lo mismo se da el caso, pero trabajamos con soluciones a medida de SAP).
Descuidad que, si la cosa se pone seria, obviamente voy a exigir un Mac. A mi no me tienen como los primeros años de GP2X, metiendo y sacando la SD para probar :D De momento, hoy me toca probar la versión trial de 24h gratis de macincloud, así que tiraré todo lo que pueda del emulador y haré las mínimas pruebas en el iPad.
Respecto a Xamarin, hay dos formas de trabajar: una es la que dice hardyx, usando Xamarin para la lógica del programa, y luego el parser para las UI de cada plataforma, pero la otra es usando las herramientas de Xamarin para la interfaz también, por lo que el código es totalmente portable. Bueno, a lo mejor hay que escribir cierto código específico para cada plataforma (las tabbed pages no fucionan en iOS y hay que emularlas, o algo de eso, aparte de los colores y más) y no tienes todas las herramientas que ofrecen de forma nativa, pero aun no he llegado a ese nivel (apenas llevo un par de meses, sólo he podido ir modificando una demo mientras llevaba adelante un par de proyectos más ^^U). Aun me estoy peleando con el concepto de "binding", algo que estoy odiando cada día que pasa (como usa strings en el proceso, depurar sus fallos es medio infierno, porque no te da ningún tipo de aviso).
Al menos puedo hacerlo en .net, que tenemos alguna cosa por aquí aun en VB6 por petición expresa del cliente :S
Lo mismo te da que sean aplicaciones para la tienda que enterprise para un cliente xD La misma respuesta vale para ambos porque son lo mismo, sólo cambia el certificado con el que firmas la aplicación al final.
Lo que te ha dicho ^MiSaTo^, no hay otra opción. Cualquier cosa que intentes o hagas para salir del paso (hackintosh, vmware...) va a ser una perdida de tiempo brutal.
Con Visual Studio a nada que actualicen el IDE te va a tocar tener actualizado tambien el xcode del "mac" y para tener actualizado el xcode tienes que tener también actualizado el MacOS y con hackintohes y demás a veces no es posible estar a la última.
DrumpiFast
25/09/2017, 10:11
Al final hemos optado por usar los servicios de macinthecloud para realizar la compilación. No es lo ideal, pero como digo, de momento sólo estamos comprobando si nos interesa el desarrollo de aplicaciones para dispositivos iOS, y no se contempla el desembolso de un mac-mini, para eso tenemos al becario (o sea, a mi) para que se pelee un poco con el tema.
Ya he conseguido compilar en remoto con "nuestro" Mac, usando VS en local y viendo los resultados en el emulador remoto.
Ahora viene conseguir que la aplicación se ejecute en el iPad del cliente. Todo lo que he leido dice que necesito una cuenta de desarrollador sí o sí, para subir los binarios a iTunes, y mandar al iPad una invitación para probar la beta. Me parece demasiado rebuscado y me parece intuir que hay una alternativa que no he visto. De hecho, localmente tengo la carpeta bin con los ficheros de la app, pero están todos vacíos. ¿Existe alguna carpeta donde estén los binarios que acabo de compilar, sea local o en remoto, para poder metérselos al dispositivo? En Mac estoy pez y no sé por dónde empezar a buscar, y quiero asegurarme antes de hacer ningún desembolso.
Al final hemos optado por usar los servicios de macinthecloud para realizar la compilación. No es lo ideal, pero como digo, de momento sólo estamos comprobando si nos interesa el desarrollo de aplicaciones para dispositivos iOS, y no se contempla el desembolso de un mac-mini, para eso tenemos al becario (o sea, a mi) para que se pelee un poco con el tema.
Ya he conseguido compilar en remoto con "nuestro" Mac, usando VS en local y viendo los resultados en el emulador remoto.
Ahora viene conseguir que la aplicación se ejecute en el iPad del cliente. Todo lo que he leido dice que necesito una cuenta de desarrollador sí o sí, para subir los binarios a iTunes, y mandar al iPad una invitación para probar la beta. Me parece demasiado rebuscado y me parece intuir que hay una alternativa que no he visto. De hecho, localmente tengo la carpeta bin con los ficheros de la app, pero están todos vacíos. ¿Existe alguna carpeta donde estén los binarios que acabo de compilar, sea local o en remoto, para poder metérselos al dispositivo? En Mac estoy pez y no sé por dónde empezar a buscar, y quiero asegurarme antes de hacer ningún desembolso.
Los binarios de iOS son ficheros .ipa y si los encuentras en algun sitio va a ser en remoto, no en tu Windows, pero no te serviran de nada ya que no estarán firmados con ningun certificado (estoy probando con un simulador y para eso no hacen falta certificados).
Hay varias formas para distribuir la app, por un lado la que comentas que sería via Test Flight a través del portal de itunes connect. Otra opción sería Ad Hoc, el cliente te pasa el UDID de sus dispositivo (se puede ver en iTunes, es un numerajo bien largo).
En cualquier caso necesitas una cuenta de developer de Apple... con una cuenta "free" se supone que dejan "Test on Device" (https://developer.apple.com/support/compare-memberships/) pero creo que eso se refiere a tener el dispositivo conectado en el xcode y darle al play, no generar un binario firmado para poder distribuirlo.
Para la distribución tanto Ad hoc como para Test Flight necesitas cuenta de developer de pago (99 USD). Por que necesitarias generar los certificados y demás (es un cristo interesante cuando empiezas).
PD: de la distribución enterprise no hablo por que cuesta más pasta todavía, 300 USD si mal no recuerdo.
PD2: Tambien puede registrarte en alguna plataforma MDM y distribuir la app de iOS desde dicha plataforma, no lo he probado nunca y desconozco si tienes que subir los certificados previamente o si tienen ellos ya de por si uno Enterprise con el que gestionan todo...
DarkDijkstra
25/09/2017, 12:08
PD2: Tambien puede registrarte en alguna plataforma MDM y distribuir la app de iOS desde dicha plataforma, no lo he probado nunca y desconozco si tienes que subir los certificados previamente o si tienen ellos ya de por si uno Enterprise con el que gestionan todo...
Eso justo venía a comentar, si consigues generar un .ipa (no recuerdo de memoria si hacía falta un .plist también, tipo descriptor) no sé si hace falta que esté firmado para distribuirlo desde un MDM, ya que como tienes que instalar previamente el perfil del MDM en el dispositivo...
De hecho recuerdo un cliente al cual le instalamos una aplicación en el dispositivo desde nuestro MDM y al abrirla pedía una confirmación tipo "el developer tal vez no sea fiable" o algo así, no recuerdo el mensaje exactamente. Por lo visto no hicieron algún paso correctamente al generar el .ipa
Si necesitas hacer alguna prueba rápida te puedo crear una cuenta sencilla para que puedas subir una app e intentar distribuirla en un dispositivo (pero lo dicho, como mínimo necesitarás generar el fichero .ipa)
^MiSaTo^
25/09/2017, 12:25
Para poder probar en el iPad sin que esté conectado físicamente (via USB) a Xcode necesitas cuenta de desarrollador. Básicamente porque necesitas firmar el ejecutable con el certificado (que es lo que vale 100€/año).
Generar los certificados hace ya tiempo que no es un cristo y que incluso té lo puede hacer Xcode solo.
Una vez que tengas el ID del iPad (se mira o desde iTunes o desde el propio Xcode si lo tuvieras en local) es ponerlo en el developer portal y firmar el ejecutable con el certificado generado. Esto se hace desde Xcode y es bastante sencillo.
Sería infinitamente más sencillo y barato (al menos para probar) si tuvieras un Mac en local. Que entonces sería enchufar el iPad y ya. Con una cuenta gratuita te valdría para probar
DrumpiFast
25/09/2017, 13:12
Pues nada, me temo que tendré que pedirle a mi jefe que se gaste el dinero.
De momento había conseguido encontrar la carpeta .app mirando los datos de depuración, y la he podido comprimir y mandar por correo al iPad, pero hasta ahí. He tenido que añadir un par de apps gratuitas para almacenar el fichero y descomprimirla, pero después ya no puedo ejecutar nada.
A lo mejor ese es el problema que tenía con Unity, que al compilar para iOS, este no generaba un binario firmado y por eso te fallaba, ^Misato^. No sé, ya digo que en Mac estoy pez porque nunca he tenido un Mac ni nada parecido para trastear.
Y aun tengo que ver por qué me falla la app en una conversión de datos que no falla en Android.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.