2011-07-13 13 views
13

He leído muchos hilos y no encuentro nada parecido a mi problema aquí. Creo que esta es una solución simple, pero parece que no puedo encontrar la respuesta. Estoy usando Xcode 4.1 Gold Master.Xcode 4.1 Problema de firma de código

Básicamente, cuando archivo mi aplicación Mac, pasa por todos los procesos normales. La construcción es exitosa. Sin embargo, cuando envío a la tienda de aplicaciones, me sale el siguiente mensaje de vuelta:

Invalid Code Signing Entitlements - Your application bundle's signature contains code 
signing entitlements that are not supported on Mac OS X; this may happen if your Mac OS X 
project was ported from iOS. Please check your Xcode project's code signing entitlements 
configuration, and remove any unneeded entitlements. 

Specifically, key "application-identifier" in "My App" is not supported. 

Mi aplicación no fue portado desde iOS y nunca he derechos de configuración. Después de muchas horas de excavación, he encontrado que la fase de señal de código estaba generando un archivo .xcent en este formato:

<?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>My.App.Identifier</string> 
    <key>com.apple.application-identifier</key> 
    <string>My.App.Identifier</string> 
</dict> 
</plist> 

La primera clave es el que causa el problema. Cuando lo elimine y fuerce a renunciar a la aplicación con el mismo archivo .xcent a través de la línea de comandos, la aplicación se ejecutará.

He eliminado y reinstalado xcode para ver si eso ayuda ... no es así.

Sé que esta creación de archivos está vinculada al perfil de aprovisionamiento. Parece estar obteniendo los datos correctos, pero agregando esa etiqueta existente. Revisé las configuraciones de proyecto y compilación y no hay derechos de firma de código en absoluto. ¿Alguna idea de cómo puedo hacer que Xcode deje de generar esta clave? No me gusta hacer esto cada vez que quiero enviarlo a la tienda de aplicaciones.

Respuesta

13

Me encuentro con el mismo problema. Después de leer tu mensaje investigué un poco.

Parece que durante el proceso de construcción, el archivo .xcent se genera a partir del archivo ubicado en /Developer/Platforms/MacOSX.platform/Entitlements.plist (también se puede encontrar en /Applications/Xcode.app/Contents/ Desarrollador/Plataformas/MacOSX.platform/Entitlements.plist).

Modifiqué este archivo y sustituí "identificador de aplicación" por "com.apple.application-identifier". Así que ahora el archivo sólo contiene .xcent:

<?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>com.apple.application-identifier</key> 
    <string>33R9UFHX3C.com.mycompany.myapp</string> 
</dict> 
</plist> 

Sin embargo todavía se enfrentan a un error binario válido cuando construyo y subirlo.

EDITAR: en realidad funciona. (Tuve otro problema no relacionado)

+0

¡Voy a probar esto durante la próxima compilación! Gracias por la sugerencia. –

+0

¡Buen descubrimiento! ¡Gracias de nuevo por la ayuda! –

+0

Funcionó para mí también. Gracias. – Guillaume

Cuestiones relacionadas