2011-06-16 5 views
9

He migrado a Xcode 4 y ya no puedo enviar mi aplicación al App Store. Cada vez que me presento ya sea a través de Xcode o cargador de aplicaciones, me sale el mismo error:La titularidad del identificador de la aplicación no está formateada correctamente - iOS Xcode 4

"el derecho de aplicaciones identificador no tiene el formato correcto ..."

googlear esto apunta al archivo en el que el Entitlements.plist La clave del identificador de la aplicación debe coincidir con mi ID del paquete de aplicaciones: J1234567885.com.domain.appName, por ejemplo,

La cosa es, lo es. ¡El identificador del paquete en mi app.plist y en Entitlements.plist son idénticos! ¿Qué estoy haciendo mal? Aquí está mi archivo Entitlements.plist (que nunca ha cambiado mirando hacia atrás):

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>application-identifier</key> 
    <string>J1234567885.com.domain.appName</string> 
    <key>get-task-allow</key> 
    <true/> 
</dict> 
</plist> 

He cambiado el identificador anterior, pero sólo para darles una idea ...

Respuesta

6

Resulta que ahora en Xcode 4+ no es necesario un Entitlements.plist para su compilación de versión (o al menos, Xcode 4 hace algo raro con eso que Xcode 3 no).

De todos modos, para solucionar mi problema, simplemente eliminé la referencia a mis derechos desde el parámetro de publicación en 'Derechos de firma de código' en Configuración de compilación.

Built, Archivado, Validado, Enviado a iTunes Connect.

+1

Verificaría los detalles binarios de tu aplicación en iTunesConnect. Lo necesita configurado para get-task-allow = FALSE para compilaciones de versiones. – jschmidt

+0

Felicidades. – Undo

0

En Xcode 4, sus derechos el archivo no debe contener el identificador de la aplicación. Solo en su Target -> pestaña Resumen. Además, get-task-allow debe establecerse en False para el envío de AppStore.

Para solucionarlo, eliminaría su archivo actual entitlements.plist y crearía uno nuevo usando Archivo -> Nuevo -> Nuevo archivo. Simplemente use la clave get-task-allow = FALSE e intente eso. Asegúrese de poner su identificador de aplicación en el objetivo -> pestaña Resumen.

+0

OK, entonces tengo get-task-allow en falso. Target-> Summary es el identificador de paquete completo. Ahora recibo el mismo error, pero solo cito J1234567885. *? – mootymoots

+0

¿Intentó borrar primero el archivo de autorización real y luego crear uno nuevo? – jschmidt

+0

Sí, creé uno nuevo ... – mootymoots

9

Tuve el mismo problema descrito por mootymoots. Resolví este problema agregando algunos params adicionales a Entitlements.plist.

estoy usando TestFlight para desplegar la aplicación a un grupo de prueba, por lo que consideró importante seguir de cerca las instrucciones del TestFlight para generating an IAP usando Xcode 4. La extirpación completa Entitlements.plist parecía un corte en lugar de una solución.

Cuando usé el "Nuevo archivo ..." asistente para crear el Entitlements.plist, se generaron los siguientes:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>get-task-allow</key> 
    <true/> 
</dict> 
</plist> 

Cuando intenté crear un archivo, se lanzó la "la aplicación de identificadores la titularidad no está formateada correctamente ... "advertencia.

A través de Google, me di cuenta de que el editor necesitaba dos parámetros adicionales con las variables Xcode como sus valores. Consulte el fragmento a continuación para la inclusión de identificador de aplicación y grupos de acceso de llavero. (No creo que este último tenía nada que ver con el problema que estaba teniendo, aunque)

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>get-task-allow</key> 
    <false/> 
    <key>application-identifier</key> 
    <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string> 
    <key>keychain-access-groups</key> 
    <array> 
     <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string> 
    </array> 
</dict> 
</plist> 

Una vez añadí estos parametros, el archivo dejó de lanzar la advertencia y yo era capaz de distribuir utilizando TestFlight.

1

En mi caso, esto fue causado por el uso de un ID de aplicación comodín para el perfil de suministro de distribución (com.mycompany. *). Reemplazarlo con un perfil de aprovisionamiento con una ID de aplicación absoluta resolvió el problema.

Cuestiones relacionadas