XCode (y la madre que lo parió) y AppStore, Preguntas Generales...

Previous topic - Next topic

msx

Mi desesperación me obligar a abrir este post para que la gente más experimentada puedan echar una mano a los novatos como yo. Llevo un mes intentando publicar una mierda de programa para que me sirva de experiencia antes de sacar un juego que estoy terminando. El caso es que me he estancado, con lo que me he deprimido y ya no tengo ganas de seguir con el juego hasta que no sea capaz de publicar éste.

Es un simple programa que te da los resultados online de las principales ligas de fútbol europeas.

Comienza mi problema con el dichoso Application failed codesign verification cuando compilo en Release. Sin embargo el programa se instala correctamente y funciona, con lo que no alcanzo a comprender en que repercutirá.

Cuando compilo en Distribution me sale lo siguiente:
Quote
Can't run "iPhone" on the iPhone "iPhone de ROM"

The iPhone "iPhone de ROM" doesn't have the provisioning profile with which the application was signed.

Click "Install and Run" to install the provisioning profile "XXX" on "iPhone de ROM" and continue running "YYY.app".

Y pulso Install and Run
¿ésto os sale a vosotros también?.

A continuación se instala en mi iPhone y al final no llega a arrancar y me sale en el Xcode Error from Debugger: The program being debugged is not being run
¿ésto es normal?

Pero la compilación es Succeeded  :(

También deciros que ayer mismo instalé de nuevo el MAC OS X 10.6.6 en mi Hackintosh con Xcode 3.2.6 e iOS 4.3 y desde entonces cuando compilo me salen 190 veces el siguiente warning ld: warning: CPU_SUBTYPE_ARM_ALL subtype is deprecated: /Users/ruben/Desktop/XCode/Lib/libGLBasiciPhone-egl.a(iPhoneAppController.o)
¿y ésto os pasa?

No sé si estos errores afectan para la publicación del programa ya que como os he dicho el resultado es Succeeded, en caso de que no afecte... como publicarlo. He probado a buscar el .app y comprimirlo y subirlo con el Uploader, pero en principio lo hace bien, sin embargo ya me lo han echado para atras 4 veces porque dice:
Quote
We encountered the issue when selecting the application on the Home screen - the app displayed a launch image then quit unexpectedly. This may be because iOS 4 uses a watchdog timer for applications; if an application takes too long to complete its initial startup, the operating system terminates the application.

Por último lo he intentado desde el Xcode, usando Build and Archive (cosa que no sabía que existia), le he dado a Validate y después a Submit y en principio esta subido al Itunnes Connect, pero no sé si esta es la forma correcta.

Bueno, como veréis estoy sumido en un mar de dudas y muy desmoralizado, si alguien más experimentado pudiera ayudarme estaría muy agradecido.

Gracias  :nw:



hardyx

Madre mía la que tienes liada!!

Yo soy también principiante en iphone, pero te digo algunos consejos. Mira en las propiedades del proyecto (apartado code signing) que tengas activada la firma con el certificado de desarrollador. En el fichero iPhone.plist (o parecido) tiene que coincidir tu nombre de desarrollador con el certificado que uses.

Luego, los certificados es recomendable que los copies en un pendrive o similar para no tener que regenerarlos, ya que puede que sean distintos y no te funcionen con lo que tienes.

Sobre el error de provisioning, ya sabes que hay que instalar en el iphone el provisioning profile, que te permite ejecutar las aplicaciones firmadas con tu certificado. Eso se hace desde el Xcode en la ventana organizer.

Un saludo.

ampos

Lo de ke se abre y se cierra y el error ese lo soluciono reiniciando el iPhone.

Y si el xcode organizer te lo ha subido como dices, si, ese es el método.

Si te sigue dando problemas el lunes kedamos, me llamas por telf y te ayudo.
check my web and/or my blog :D
http://diniplay.blogspot.com (devblog)
http://www.ampostata.org
http://ampostata.blogspot.com
I own PC-Win, MacBook 13", iPhone 3G/3GS/4G and iPAC-WinCE

msx

Gracias ampos, estoy que no sé si cortarme las venas o dejármelas largas.

Aunque se cierre en el Debug, ¿funcionará bien?, yo ya he probado reiniciando y  sigue igual. Voy a instalar el Xcode 4 a ver si se me quitan los errores.

mentalthink

Hola msx, pues la verdad si que es un poco follón, como lo ha montado Estebán, yo recuerdo que cuando subí la apliación que hicé, me dio un error, y luego no se porque salía un error de que no coincidía un número de no sé qué.

El rollo de hacerlo con un hackintosh, estó no sé... son especulaciones mias, pero ten encuenta que si tú, Ampos, hark0, hardyx y tropecientas mil personas más saben hacer la "pirula" del Mac, supongo que Apple habrá tomado medidas, quizás no te sube bien por eso.

Otro caso sobre el hackintosh, es que no siempre va bien del todo el Xcode, por ejemplo mi hermano, le monté uno en un ordenador mio , y la primera vez que compilo su programa, el ordenador se quedo "tieso", y yo lo había usado durante 3 meses haciendo pruebas.

Finalmente, despues de unos 6 meses me compre una "mierda de mac mini", digo mierda porque por ese precio te montas un ordeandor que le dá mil vueltas, pero bueno, los negocis, son los negocis... Sí puedes yo haría eso, y la mejor opción sin dudarlo es un mac mini, el más tirao, comprarlo en un Corte Inglés, aún recuerdo que llamé a Apple, y parecía un interrogatorio, por unos miseros 600€, y el Corte Inglés me parece que lo puedes pagar a 12 meses y sin intereses, OJO!!! no tengo nada que ver con el Corte Inglés, pero el rollo de que era solo para los ricos, ha pasado a la historía, yo de hecho casí todo lo que puedo lo "pillo" ahí, por la seriedad y lo bien que tratán al cliente.

Todo esto es especular un poco, como digo, no sé si con un Hackintosh la aceptan... no lo sé realmente, si con hackintos se puede, que "le dén".

Un consejo sobre la apliación, si tienes mucho follón, hazte un nuevo perfil, lo que creas en el Apple Developer, y vuelves a compilarlo con eso, como te digo, a mi me daba un error que ni recuerdo que era, pero era un follón de sus servidores.

Un saludo, y si te podemos ayudar  , aunque creo que no lo he hecho, sigué comentándonos la jugada, pero bueno... Ampos es un "chanas" y seguro que te lo soluciona.

Iván J.

msx

Preguntas para ir descartando:

QuoteCan't run "iPhone" on the iPhone "iPhone de ROM"

The iPhone "iPhone de ROM" doesn't have the provisioning profile with which the application was signed.

Click "Install and Run" to install the provisioning profile "XXX" on "iPhone de ROM" and continue running "YYY.app".

¿ésto os sale cuando compiláis para Distribución?

y...
QuoteError from Debugger: The program being debugged is not being run

¿ésto también os sale?

Y por último, ¿usáis las mismas llaves públicas y privadas para Development y Distribution o generáis una para cada certificado?.

hardyx

Quote from: mentalthink on 2011-Apr-23
pero ten encuenta que si tú, Ampos, hark0, hardyx y tropecientas mil personas más saben hacer la "pirula" del Mac, supongo que Apple habrá tomado medidas, quizás no te sube bien por eso.
Yo tengo un Mac mini, no he hecho ninguna pirula :). De hecho le recomiendo comprar un mac, porque se ahorrará muchos dolores de cabeza. En un hackintosh las actualizaciones siempre dan problemas, no es fiable para desarrollar.

ampos

Yo me pille un portátil en eBay por 300€.

Mañana te comento ke hoy estoy por iPhone y es un coñazo. Pero si, tb me salen esos errores.
check my web and/or my blog :D
http://diniplay.blogspot.com (devblog)
http://www.ampostata.org
http://ampostata.blogspot.com
I own PC-Win, MacBook 13", iPhone 3G/3GS/4G and iPAC-WinCE

Hark0

Primero los comentarios "sencillos".

OL VI DA TE de un hackintosh... está muy bien para "vacilar" con los compis y intentar saborear la expriencia macintosh... pero de verdad, lo suyo, es una máquina nativa. OJO, soy de PC desde que me compré un Amstrad 2086 con 20 mb de HDD, dios mio XD... pero hay que quitarse el gorro en según que cosas... los entornos OSX están MUY bien optimizados... muy estables, sin complicaciones, etc..... no digo que un mac sea perfecto, pero nada que ver con correr un hackintosh y un mac real, lo sé de buen tinta. Si el tema es el económico, pilla uno de segunda mano o como han comentado, un mac mini.... si lo vas a pillar a plazos, planteate el macbook de 999 pavos... yo tengo uno de esos de segunda mano del año 2006, ampliado a 4 gb de RAM, y corre todo el soft actual como el que más... no le pidas que ejecute un WOW (que lo hace ojito), entonces la máquina empezará a "sudar" y verás que el ventilador se pone a 200 como en cualquier pc, claro. Hablo de mi mac de 2006, supongo que con uno actual esos problemas no existen.

Vamos a lo que nos ocupa y en mi experiencia personal.

Primero tienes el engorro de las claves, el llaverito de marras, las licencias, etc... yo tuve problemas también al principio y decidí borrar todo y empezar de cero. Esto es; cepillate del llavero todo lo relativo a developer, tu id de devloper, tus claves, etc... entras en el app provisionament y baja de nuevo todo. Primero el id developer, y lo metes en el llavero. Luego el tema de registrar tus iOS devices en la web, los provision files por app, etc...

Actualiza Xcode, el ultimo, el 4.x ocupa un DVD... lo bajas, instalas y lo abres ... busca la ventana organizer con el iphon/ipad conectado (yo detengo la sincronización con itunes en el mac, ya que la hago en el pc de trabajo). Tirale a la ventana organizer los provision files correspondientes y comprueba que están en tus máquinas... vete en el iphone a ajustes, general, perfiles y ahi deberian estar tus provision files...

Una vez todo instalado sales de Xcode y abres el proyecto generado con GLB... haz los cambios de turno, versión de iOS, icono, orientación pantalla... lo que precises y a compilar.... y suerte!!!!


A mi me ha pasado:

- Xcode me dice que falta noseque y que si quiere que lo haga por mi, le dije OK y listos, no me pidió nunca más eso... siento no poder dar más info, pero sino recuerdo mal era algo relativo ala s provisionnfiles... tu hazlo de antemano como he comentado. Que alguien me corrija si me equivoco.

- Soy incapaz, desde que Xcode tiene el look itunes, poder compilar la aplicaion para RELEASE, no puedo cambiar siquiera el nombre del proyecto y en el ipad/iphone, se me carga la app como iphone, NO con mi nombre de app. Precisaría ayuda al respecto.

- Hay parámetros como la pantalla de carga, el icono etc, que con el nuev IDE de Xcode se modifican en un microsegundo ;)

- Como Xcode se actualiza cada 2 por 3, he decidido NO compilar en macos hasta que no tenga el proyecto al 99%, es muy bonitoir viendo la app en la máquina, pero una vez hechos X test, personalmente puedo seguir trabajando en pC con GLB, que voy muy rápido y tengo pantalla que me permite 1024 en vertical sin problemas ;)


PROPONGO crear un HOWTO entre todos, sobre configurar Xcode y su uso con GLB, así como la parte de preparar y publicar una app en la tienda de apple... experiencias, requisitos legales, problemillas con iconos, descripciones, pantallas, etc... en fin los que ya tenéis material en la appstore sabeis mejor que nadie todos los problemas que hay que solventar....

Si puedo ayudar en algo más.... por aquí ando.

Suerte msx!
http://litiopixel.blogspot.com
litiopixel.blogspot.com - Desarrollo videojuegos Indie · Pixel-Art · Retroinformática · Electrónica Development Indie Videogames · Pixel-Art · Retrocomputing · Electronic

msx

Bueno pues instalé el XCode 4 por probar, pero no me convence del todo, en realidad parece más sencillo, pero se ve que como estoy acostumbrado al entorno del 3.2.6 pues como que no me hallo. En cualquier caso no remitían los errores, por lo que estaba en las mismas. He vuelto de nuevo al XCode 3.2.6 y, sorpresa mía, ya no me sale Application failed codesign verification, al menos por ahora, al final siempre termina saliendo, así que cruzaré los dedos.

Los 190 warnings de ld: warning: CPU_SUBTYPE_ARM_ALL subtype is deprecated: /Users/ruben/Desktop/XCode/Lib/libGLBasiciPhone-egl.a(iPhoneAppController.o) sigue apareciendo, pero ya doy por hecho que es por la mierda de iOS 4.3.1 con jailbreak (lo necesito para liberarlo, ya que proviene de USA), porque lo he actualizado hace unos días y con mi antiguo iOS 4.1 no salían. Lo curioso es que solo sale cuando hago un Clean y después un Build and Run, si hago el Build and Run sin Clean ya no sale, pero claro eso es trampa  =D. De todas formas no me preocupa porque es cosa de mi terminal, y no del programa.

Leí en las intrucciones del Provisioning Portal que para publicar la aplicación, se pulsa Build usando el certificado de Distribución, se busca el .app generado, se comprime y se sube con el programa Uploader. Así lo he hecho todas las veces y todas me lo han echado para atrás.

Esta última vez lo he hecho usando el Organizer del XCode, primero validando y después con el Submit que me pidió que seleccionara el Certificado que quería usar. ¿Se puede hacer de las dos formas o podría ser que lo hiciera mal con el Uploader y por eso no funcionaba?. Quisiera darle una explicación porque el programa tampoco es que sea muy complejo para que de problemas.

Otra cosa, ¿alguien sabe como recuperar el .ipa que se ha subido al Itunes para probar si funciona en mi iPhone? (aprovechando que tengo el jailbreak).

Gracias por vuestra paciencia....  :nw:

Hark0

Para recuperar el IPA, creo que tienes dos opciones... desde xcode 4.x (que ya no tienes) desde organizer, te deja guardar el ipa en el HDD.

O bien busca dentro de itunes, la carpeta donde se alojan TODOS los IPAs comprados... debería estar el tuyo también.

Recuerda que un IPA es en realidad un ZIP... por si quieres echarle un ojo...
http://litiopixel.blogspot.com
litiopixel.blogspot.com - Desarrollo videojuegos Indie · Pixel-Art · Retroinformática · Electrónica Development Indie Videogames · Pixel-Art · Retrocomputing · Electronic

msx

Volviendo al tema que te quema.

Sigo igual, no soy capaz de publicar nada. Continúo subiendo la misma aplicación y me la devuelven diciendo que ha sido "Rejected", empiezo a cogerle manía a esta palabra anglosajona.

Llegado a este punto voy a hacer un repaso a lo que hago, para que me indiquéis que es lo que NO hago bien, o quizás lo mejor es que me digáis que es lo que hago bien que seguramente tardaréis menos  =D

1.- Preparo los Certificados. Comienzo con el de Development. Voy a Acceso a Llaveros->Preferencias->Certificados y desactivo las dos opciones que aparececen.

2.- Después voy a Voy a Acceso a Llaveros->Asistente para certificados->Solicitar un certificado a una autoridad de certificación.

En dirección de correo del usuario pongo la misma con la que estoy registrado en el Portal de Apple. En nombre común pongo mi nombre.

Aquí aparece mi primera duda, ¿qué nombre tengo que poner? ¿el mismo que aparece en el Portal de Apple o uno cualquiera? ¿porque mis certificados de Development y Distribution tienen nombre diferentes, en uno aparezco en mayúsculas con mi nombre compuesto y en otro en minúscula y solo mi primer nombre (sin combre compuesto)? ¿ésto afecta a la hora de poner el nombre cuando solicito los certificados a traves del Llavero?

Marco Guardado en disco y especificar la información del Par de Llaves. Después 2048 bits y RSA.

3.- A continuación me voy a IOS Provisioning Portal y en Certificados->Development le doy a Añadir. Selecciono el archivo que se me ha grabado en el proceso del paso 2 y espero. Entonces me aparece el botón de Download.

4.- Ahora me descargo el WWDR intermediate certificate y lo instalo. A continuación le doy al botón Download y descargo el otro certificado y lo instalo también. En este punto tengo dos llaves una privada y otra pública y dos certificados instalados en el sistema uno de ellos relacionado con la Llave Privada (creo).

Creo que por ahora voy bien, sin embargo me queda la duda de los datos a rellenar a la hora de solicitar el certificado a través del Acceso a Llaveros, estoy un poco liado sobre todo con el nombre que tengo que poner.

5.- Ahora en el IOS Provisioning Portal selecciono Devices y añado mi IPhone.

6.- En AppID tengo unos pocos instalados, porque antes creía que por cada prueba había que crear uno. Tengo del tipo ¿Wildcard? que son de la forma XXXXXXXX.* y otros que son algo así XXXXXX.com.dominio.app.

¿de esto cual usáis vosotros, las Wildcard o las otra? yo hasta ahora usaba las otras (XXXXXX.com.dominio.app) pero he leído que solo son para hacer uso de ls notificaciones PUSH, yo lo que hgo es poner en el Bundle Identifier del archivo iPhoneInfo.plist ésto com.dominio.app pero por lo que he leído lo lógico es usar una Wildcard y en ese campo no poner nada, espero que me lo aclaréis.

7.- Le doy a Build and Run y se carga bien en el iPhone pero me sale el warning Application failed codesign verification.

¿Puede ser que algo de lo anterior esté mal y repercuta ahora en ésto?

Ahora los pasos que hago para Distribución.

Aquí tengo una duda grande, ¿tengo que volver a hacer todo el proceso de solicitar un Certificado a una autoridad certificadora usando el Acceso a llaveros como antes, o me sirve el mismo archivo que se descargó en el paso 2?, yo lo he hecho de las dos formas y nada, y otra duda ¿si solicito otro certificado, en el nombre tengo que poner el nombre que me aparece en los certificados de Distribución (como os he dicho aparecen con nombres diferentes mi certificado Development y Distribution)?

8.- Una vez tengo el Certificado de distribución y añadido, le doy a Build and Run y me sale el dichoso mensaje:

QuoteCan't run "iPhone" on the iPhone "iPhone de ROM"

The iPhone "iPhone de ROM" doesn't have the provisioning profile with which the application was signed.

Click "Install and Run" to install the provisioning profile "XXX" on "iPhone de ROM" and continue running "YYY.app".

y cuando carga la aplicación se sale de forma inesperada y me dice Error from Debugger: The program being debugged is not being run, pero si tengo el correspondiente icono en el iPhone que si pulso se carga sin problemas.

El caso es que cuando valido con el Organizer no me da ningún error, y cuando le doy a Submit tampoco, sin embargo después me aparece el Rejected y me dicen:

Quote2.2

We found that your app failed to launch on iPhone 4 running iOS 4.3.2, on both Wi-Fi and cellular networks.

We encountered the issue when selecting the application on the Home screen - the app displayed a launch image then quit unexpectedly. This may be because iOS 4 uses a watchdog timer for applications; if an application takes too long to complete its initial startup, the operating system terminates the application.

For information about the watchdog timer, please see Technical Q&A: Application does not crash when launched from debugger but crashes when launched by user..

Another possibility could be a missing entitlement. For more information, please see the Technical Note: Resolving "0x800003A", applications not launching and "missing entitlement".

For discrete code-level questions, you may wish to consult with Apple Developer Technical Support. Please be sure to include any symbolicated crash logs, screenshots, or steps to reproduce the issues when you submit your request. For information on how to symbolicate and read a crash log, please see Tech Note TN2151 Understanding and Analyzing iPhone OS Application Crash Reports.

To appeal this review, please submit a request to the App Review Board

Por favor, necesito que me echéis una mano con ésto, sé que es un tocho grande pero necesito de vuestras experiencias para poder avanzar porque se me acaban las ideas, por favor leerlo con cariño y responder con tiempo porque necesito que me aclaréis y no que me liéis más de lo que estoy  :D

Gracias por vuestra comprensión  :booze:

msx

Seguimos igual, a pesar de la inestimable colaboración del amigo ampos. Creo que finalmente van a tener razón los de Apple, que supongo que tienen experiencia, y el problema no va a ser los certificados sino el programa en sí. Os cuento, resulta que el motivo por el que me echan para atrás el IPA es:

Quote2.2

We found that your app failed to launch on iPhone 4 running iOS 4.3.2, on both Wi-Fi and cellular networks.

We encountered the issue when selecting the application on the Home screen - the app displayed a launch image then quit unexpectedly. This may be because iOS 4 uses a watchdog timer for applications; if an application takes too long to complete its initial startup, the operating system terminates the application.

For information about the watchdog timer, please see Technical Q&A: Application does not crash when launched from debugger but crashes when launched by user..

Another possibility could be a missing entitlement. For more information, please see the Technical Note: Resolving "0x800003A", applications not launching and "missing entitlement".

For discrete code-level questions, you may wish to consult with Apple Developer Technical Support. Please be sure to include any symbolicated crash logs, screenshots, or steps to reproduce the issues when you submit your request. For information on how to symbolicate and read a crash log, please see Tech Note TN2151 Understanding and Analyzing iPhone OS Application Crash Reports.

To appeal this review, please submit a request to the App Review Board

Que más o menos quiere decir que sí el programa tarda mucho en cargar, el watchdog se encarga de cerrarlo, en teoría para evitar que aparezca una pantalla negra durante un rato si n hacer nada y se desespere el usuario. He observado lo que hace mi programa una vez instalado en mi iPhone, y lo que hace uno de los programas de ampos por ejemplo. El de la monedita (perdona ampos pero no me acuerdo como se llama, no sé qué COIN), cuando pulso en el icono, inmediatamente se abre la pantalla de presentación de Diniplay, y cuando digo inmediatamente es que aparece en el acto haciendo una especie de zoom hasta que coge la pantalla entera (he observado que esto lo hacen todas las aplicaciones, ya que lo hará el IOS de por sí). Sin embargo si abro mi aplicación, (lo primero que hago es un LOADBMP "fondo.png"), resulta que en lugar de abrirse el PNG, aparece una pantalla negra y al cabo de un rato (2 ó 3 segundos) se abre el fondo. Ésto creo que es lo que hace que salte el Watchdog y me cierre la aplicación (aunque en mi iPhone se abre sin problemas, pero está en modo Release).

¿Alguién sabe por qué se comporta así?

Gracias por soportar el coñazo  :happy:

ampos

Esa pantalla ke se abre tiene ke llamarse default.png y estar en el mismo sitio ke el icon.png y añadido en los resources creo ke se llama.

Y después de tu loadbmp tienes ke poner un showscreen :) o no se ve :p
check my web and/or my blog :D
http://diniplay.blogspot.com (devblog)
http://www.ampostata.org
http://ampostata.blogspot.com
I own PC-Win, MacBook 13", iPhone 3G/3GS/4G and iPAC-WinCE

msx

El Showscreen lo pongo que uno ya lleva un tiempo por estos lares  :nana:

Quizás sea el default, yo nunca lo he puesto.  :S