He creado una nueva aplicación que admitirá IOS 7. Obtuve el nuevo XCode 5 GM e intenté firmar mis aplicaciones utilizando mi nuevo perfil de aprovisionamiento y certificado de distribución, pero tengo problemas con la distribución. Constantemente recibo el siguiente error:
"Derechos de firma de código no válidos. Los derechos en la firma del paquete de su aplicación no coinciden con los contenidos en el perfil de aprovisionamiento. Según el perfil de aprovisionamiento, el paquete contiene un valor clave que no está permitido: '[XXXX.com.muestra .company] 'para la clave' keychain-access-groups ".
También el mismo error para un valor clave llamado application-identifier
.
Captura de pantalla del error:
fuente
Si eres como yo y crees que lo intentaste TODO , archivaste tu proyecto más de diez veces, te golpeaste la cabeza con el teclado y aún recibes este error. Hazte un favor y simplemente reinicia XCode , funcionó para mí. En algún momento Apple ... te odio.
fuente
Pasé por muchos de los pasos anteriores, pero lo que finalmente funcionó para mí fue actualizar mis perfiles en Xcode. No estoy seguro de por qué era necesario ya que el perfil de distribución de mi aplicación ya aparecía en la lista. Aquí están los pasos:
fuente
En mi caso, activé las mismas capacidades en Xcode que en los servicios de aplicación en developer.apple.com. Eso funciona para mi
fuente
En mi caso (lo siento) cambié "Equipo" a "Ninguno" en -> General -> Identidad
En otro caso, necesitaba cambiar esta identidad de "Ninguna" a la cuenta de desarrollador que administra las identidades y los perfiles.
Xcode a veces se equivoca mucho con la firma de código, parece. O, los simples mortales simplemente no somos lo suficientemente inteligentes como para entender lo que está haciendo, por supuesto. ¡No te rindas, todos estamos pasando por un código que firma tortura a veces!
fuente
En mi caso, tuve que configurar el perfil de suministro correcto para la versión, y luego tuve que reiniciar Xcode. Antes de reiniciar, tenía el mismo perfil de provisión y no funcionaba. Entonces, a veces un reinicio puede hacer milagros. Quizás esto ayude a alguien.
fuente
Si alguien usa un GameCenter, verifique esta sección en su objetivo. Trabajé con algún proyecto antiguo y hubo 2 errores (pero todo funcionó bien). Deshabilitar y habilitarlo de nuevo resolvió este problema.
Lo más probable es que esta acción agregue el derecho de Game Center a la ID de la aplicación y la maneje por sí misma.
fuente
1.Vaya a la carpeta del proyecto, elimine los archivos * .entitlements. 2.A continuación, vaya al objetivo del proyecto xcode -> configuración de compilación -> derechos de firma de código - eliminar valores 3.Clean 4.Run
fuente
Ah, este glorioso error. Para mí cada vez que veo este error, verifico lo siguiente:
1. Permita que XCode acceda a la información de su perfil de aprovisionamiento todo el tiempo : si XCode sigue preguntando cuando lo inicia para tener acceso a los archivos privados de su computadora para que pueda obtener información del perfil de aprovisionamiento con las opciones para permitir el acceso siempre, no ahora, o solo una vez: configúrelo para SIEMPRE PERMITIR el acceso
2. Si tiene archivos de derechos antiguos que están dando vueltas a su proyecto, deshágase de ellos y cualquier signo de ellos ; si ve un archivo .entitlements en su proyecto, elimínelo (o al menos elimine la referencia si no está seguro) está listo para eliminarlo por completo), luego asegúrese de que la línea 'Derechos de firma de código' en la sección 'Firma de código' en Configuración de compilación esté vacía
3. Verifique sus Servicios de aplicación en línea y combínelos con sus Servicios en XCode para la aplicación : vaya al Centro de miembros de Apple y verifique el ID de la aplicación para su aplicación, haga clic en la aplicación para ver sus 'Servicios de aplicación' y vea qué ha verificado, luego vaya a XCode y consulte la sección 'Capacidades' para asegurarse de que los dos tengan la misma lista de servicios de Apple en ambos
4. Asegúrese de asignar un perfil de aprovisionamiento válido a su aplicación antes de validar : verifique su perfil de aprovisionamiento para su aplicación en el Centro de miembros de Apple, asegúrese de que no haya caducado, tenga la ID de aplicación correcta con la identificación y distribución correcta del paquete . Descargue y haga clic en el nuevo perfil de aprovisionamiento para asegurarse de que XCode lo tenga, o vaya a XCode> Preferencias> Cuentas> haga clic en su cuenta y 'Ver detalles' y luego haga clic en el botón de la esquina inferior para sincronizar todos los perfiles a XCode. Debe tener el perfil disponible para seleccionar ahora en la sección 'Firma de código'. Una vez que tenga el perfil de aprovisionamiento correcto, puede establecer las líneas de 'Identidad de firma de código' en la opción correcta para ese perfil de aprovisionamiento.
Nota: si realiza un certificado de distribución, puede ayudar establecer todas las líneas de 'Identidad de firma de código' en la identidad que utiliza para la distribución, incluidas las líneas de depuración
5. SI TODO LO DEMÁS FALLA - Limpie su proyecto y reinicie XCode y algo de magia de Apple podría funcionar bien la próxima vez que abra su proyecto e intente validar
fuente
Si está creando un antiguo proyecto 3.1.5, Xcode 5 tiene algunos errores que desafortunadamente hacen que la respuesta de Benjamin sea imposible, ya que no hay perfiles de aprovisionamiento para elegir. Después de muchas horas de lectura atormentada de los archivos del proyecto Xcode, se me ocurrió esta solución que funcionó para mí:
open -a TextEdit path/to/name.xcodeproj/project.pbxproj
isa=XCBuildConfiguration
).PBXNativeTarget
y una enPBXProject
XCConfigurationLists
)Ahora está listo para volver a abrir, archivar y enviar a la tienda de aplicaciones - ¡voilà! Funciona de nuevo!
Como creo que funciona
Supongo que esto funciona porque Apple, en algún lugar de la línea, decidió abandonar la necesidad de una configuración de distribución separada, lo cual es algo bueno. Cuando archivo, Xcode codifica automáticamente los signos para su distribución. Así es como debería haberse implementado en primer lugar, es una pena que Apple no pueda hacer que la migración automática forme parte del IDE; en su lugar, nos obligan a los desarrolladores a pasar décadas para hacer que esto funcione.
fuente
He estado luchando con este problema durante más de un día, probando todo tipo de soluciones sugeridas aquí y en otros lugares en Internet. Nada funcionó...
¡Pero finalmente logré resolver el problema!
El problema que tuve fue con una aplicación antigua que no había tocado en más de 3 años, y ahora estaba a punto de lanzar una actualización tan esperada. Desde el momento en que lancé la aplicación, Apple ha estado actualizando cómo funcionan los certificados y el Id. De la aplicación. Han introducido el concepto de Id. De equipo que parece recomendado para usar. En particular, el sitio de "Certificados, identificadores y perfiles" de Apple ha visto muchos cambios desde entonces.
Allí me di cuenta de que el perfil de aprovisionamiento que estaba usando para App Store Distribution estaba conectado al ID de la aplicación,
ED8xxxxxxx.com.rostsolutions.*
pero al mirar el ID de la aplicación para el juego que estaba a punto de enviar, noté que el ID de la aplicación estabaATMxxxxxxx.com.rostsolutions.Swisch
. ¡Así que el prefijo de Id. De la aplicación no coincidía! Esa parecía ser la raíz del problema. Entonces, lo que hice fue crear un nuevo perfil de aprovisionamiento conectado al ID de la aplicaciónATMxxxxxxx.com.rostsolutions.Swisch
. Usando ese perfil de aprovisionamiento, envié con éxito mi aplicación a App Store y ahora mantengo mis dedos cruzados para que todo lo demás funcione bien al lado de Apple.(En primer lugar, intenté conectarme al nuevo perfil de aprovisionamiento con el comodín Id
ATMxxxxxxx.com.rostsolutions.*
, pero eso no pareció funcionar).Pero lo que me desconcierta es que cuando miro la aplicación anterior en iTunes Connects y voy a Detalles binarios, dice que el ID de la aplicación es
ED8xxxxxxx.com.rostsolutions.Swisch
. Entonces, ¿por qué la página "Certificados, identificadores y perfiles" enumera el ID de la aplicación comoATMxxxxxxx.com.rostsolutions.Swisch
?fuente
Mi problema se resolvió eliminando mi ID de Apple de Preferencias-> Cuentas y luego volviéndola a agregar. Luego, todos mis archivos de perfil de aprovisionamiento aparecieron en el panel de utilidades Ver detalles. Elegí por error "Perfil de aprovisionamiento de equipo Mac: *" en lugar del perfil de aprovisionamiento de distribución real para el proyecto, pensando que era una selección genérica. Los archivos de aprovisionamiento deben ser específicos del proyecto. Ah, y por cierto, asegúrese de que su perfil de aprovisionamiento tenga los derechos correctos (por ejemplo, Maps). Logré lanzar una aplicación con OSX Maps sin el derecho y Apple la aprobó, ¡pero no apareció Maps en la versión de producción!
fuente
En mi caso, tuve el mismo problema, mi solución fue cambiar el 'Perfil de aprovisionamiento de versión' en la Configuración de compilación antes de hacer el Archivo. Hago esto dos veces, una para la distribución de la App Store y otra para la distribución Ad Hoc. También agrego un comentario en mis archivos. Mi conclusión es que hay algo roto en la "nueva firma de archivo".
fuente
Hay un muy buen tutorial para resolver ese problema en este sitio web.
Dice que este problema puede ocurrir cuando su Identificador de paquete de proyectos es diferente al que ingresó en el sitio web de iTunes Connect .
fuente
Creo que xcode 5 usa "lanzamiento" en lugar de "distribución" que puede crear usted mismo.
fuente
Si todo lo anterior no funcionó (en mi caso, después de un par de días sin suerte intentando todo), solo tengo una aplicación para Mac. ¡CUIDADO CON REVOCAR!
1) Revocar a mano todas las "Distribución de aplicaciones de Mac" y "Distribución de instaladores de Mac"
2) Limpiar certificados relevantes y claves abiertas en Llavero ( Advertencia: exportar antes de eliminar)
3) Reiniciar Xcode 4) Ir a (en Safari) developer.apple .com -> certificados, etc. 5) Cree CertificateSigningRequest.certSigningRequest en Keychain-> Certificate Assistant
6) Cree a mano en developer.apple.com tanto "Mac App Distribution" como "Mac Installer Distribution" con su * .certSigningRequest
7) Provisioning Perfiles -> Distribución -> crear / corregir provisión personalizada para AppStore (especialmente lo llamo "Perfil de provisión Mac para AppStore"
8) Xcode -> Configuración -> Cuenta -> Su cuenta ->Actualizar 9) Xcode Clean -> Archivo -> Validar
fuente
He estado luchando con un problema similar (estaba construyendo para la distribución Ad-Hoc). Lo único que ha cambiado desde la última implementación exitosa fue agregar dos dispositivos al perfil de aprovisionamiento.
Después de verificar doble y triplemente todas las configuraciones de compilación, regeneré el perfil de aprovisionamiento (sin cambiar nada), lo volví a descargar y funcionó bien.
Así que tenga en cuenta: si no hay una explicación lógica, siempre puede probar el viejo vudú de TI.
También recomiendo la Utilidad de configuración de iPhone , que a pesar de su nombre, es útil para verificar qué perfiles de aprovisionamiento tiene en la computadora.
fuente
ERROR ITMS-9000: “Este paquete no es válido. Las nuevas aplicaciones y actualizaciones de aplicaciones enviadas a App Store deben estar compiladas con versiones públicas (GM) de XCode 5.1.1 o superior y iOS 7 SDK. No envíe aplicaciones creadas con software beta.
fuente
Si varios desarrolladores están utilizando la misma cuenta del centro de miembros. Uno de ellos no puede usar un certificado creado por otros porque usaron una solicitud de certificado creada usando sus computadoras.
Alternativa, les dije que le enviaran el Perfil de desarrollador. No estoy seguro del nombre. para usar un certificado creado en otra computadora.
fuente
Los derechos de firma de código se producen debido a que su recurso no contiene el archivo de derechos en los recursos, solo vaya a la configuración de compilación y busque los derechos de firma de código elimine la entrada para depurar y liberar, vuelva a ver el proyecto de compilación y verá que no hay ningún error. Salud
fuente
Tuve el mismo problema, pero nada de lo escrito aquí funcionó para mí. Sin embargo, encontré una manera simple que funcionó para mí. Aquí se explica cómo hacerlo:
1) En su Proyecto y en la configuración de compilación de su (s) Destino (s), elija "Ninguno" para todos los perfiles de Aprovisionamiento y elija "No firmar con código" para todas las Identidades de firma de código.
2) Ahora, elige tu Target y ve a la configuración de construcción. En la configuración de Liberación de identidad de firma de código, elija "Distribución de iOS" para "Cualquier SDK de iOS". Y luego, en la configuración Liberación de perfil de aprovisionamiento, elija su perfil de distribución para "Cualquier SDK de iOS". Después de eso, la configuración de Liberación de identidad de firma de código debería cambiar automáticamente a "Distribución de iPhone".
3) Archive su construcción y valide. Ahora debería funcionar bien. ¡Eso es!
fuente