objective c - traspaso - Xcode 5: errores de autorización de firma de código
formato autorizacion terceros (21)
Creé una nueva aplicación que admitirá iOS 7. Obtuve el nuevo XCode 5 GM y traté de firmar mis aplicaciones utilizando mi nuevo perfil de aprovisionamiento y certificado de distribución, pero estoy teniendo 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 la aplicación no coinciden con los que están contenidos en el perfil de suministro. Según el perfil de suministro, 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 errror:
1. Vaya a la carpeta del proyecto, elimine los archivos * .entitlements. 2.A continuación, ve a yo en el objetivo del proyecto xcode -> configuración de compilación -> derechos de firma de código - eliminar valores 3. Limpiar 4. Ejecutar
Ah, este glorioso error. Para mí cada vez que veo este error, compruebo lo siguiente:
1. Permita que XCode acceda a su información de perfil de aprovisionamiento todo el tiempo : si XCode le pregunta cuándo lo inicia para tener acceso a los archivos privados de su computadora para que pueda obtener información de perfil de aprovisionamiento con las opciones para permitir el acceso siempre, no ahora, o solo una vez: configúralo para SIEMPRE PERMITIR el acceso
2. Si tiene archivos de titularidad antiguos dando vueltas en su proyecto, deshágase de ellos y de cualquier señal de ellos : si ve un archivo de archivos en su proyecto, elimínelo (o al menos elimine la referencia si no está seguro). está listo para eliminarlo directamente), luego asegúrese de que la línea ''Derechos de firma de código'' en la sección ''Firmar código'' en Configuraciones de compilación esté vacía
3. Verifique sus Servicios de aplicación en línea y compárelos con sus Servicios en XCode para la aplicación : vaya al Centro de miembros de Apple y verifique la ID de aplicación para su aplicación, haga clic en la aplicación para ver sus ''Servicios de aplicación'' y vea lo que ha marcado, luego vaya a XCode y revise su sección de ''Capacidades'' para asegurarse de que ambos 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 validarlo : revise dos veces 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 id. De paquete correcta y distribución . Descargue y haga clic en el nuevo perfil de aprovisionamiento para asegurarse de que XCode lo tiene, o vaya a XCode> Preferencias> Cuentas> haga clic en su cuenta y en ''Ver detalles'', luego haga clic en el botón de la esquina inferior para Sincronizar todos los perfiles en XCode. Debería 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 se hace un certificado de distribución, puede ayudar a establecer todas las líneas de ''Identidad de firma de código'' para la identidad que se usa 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
Creo que xcode 5 usa "liberación" en lugar de "distribución" que tú mismo puedes haber creado.
ERROR ITMS-9000: "Este paquete no es válido. Las nuevas aplicaciones y actualizaciones de aplicaciones enviadas a App Store deben compilarse con versiones públicas (GM) de XCode 5.1.1 o superior y iOS 7 SDK. No envíe aplicaciones creadas con el software beta.
En mi caso (perdón) cambié "Equipo" a "Ninguno" en -> General -> Identidad
En otro caso, necesité cambiar esta identidad de "Ninguna" a la cuenta de desarrollador que administra las identidades y los perfiles.
Xcode a veces se equivoca enormemente con la firma de código, parece. O, simplemente, los simples mortales no somos lo suficientemente inteligentes como para comprender lo que está haciendo, por supuesto. No te rindas, todos estamos pasando por algún código de la firma de la tortura a veces!
En mi caso, activé las mismas capacidades en Xcode que en los servicios de aplicación en developer.apple.com. Eso es bueno para mi
En mi caso, tuve el mismo problema, mi solución fue cambiar el ''Perfil de aprovisionamiento de versiones'' en la Configuración de compilación antes de realizar el Archivo. Lo hago dos veces, una para la distribución de App Store y otra para la distribución Ad Hoc. También agregué un comentario en mis archivos. Mi conclusión es que hay algo roto sobre la "re-firma del archivo".
En mi caso, tuve que establecer el perfil de provisión 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. Tal vez esto ayude a alguien.
Hay un muy buen tutorial para resolver ese problema en this 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 .
He estado luchando con este problema durante más de un día, probando todo tipo de soluciones sugeridas aquí y en otras partes de 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 largamente esperada. Desde el momento en que lancé la aplicación, Apple ha estado actualizando cómo funcionan los certificados y la Id. De la aplicación. Han introducido el concepto de Team Id, que parece ser recomendable. En particular, el sitio "Certificates, Identifiers & Profiles" de Apple ha experimentado muchos cambios desde entonces.
Allí me di cuenta de que el Perfil de Aprovisionamiento que estaba usando para App Store Distribution estaba conectado a la aplicación ID ED8xxxxxxx.com.rostsolutions.*
Pero mirando el Id de la aplicación para el juego que estaba a punto de enviar, noté que el ID de la aplicación era ATMxxxxxxx.com.rostsolutions.Swisch
. ¡Entonces el prefijo de Id de aplicación no coincidía! Esa parecía ser la raíz del problema. Entonces, lo que hice fue crear un nuevo perfil de provisión conectado a la aplicación ID ATMxxxxxxx.com.rostsolutions.Swisch
. Usando ese perfil de provisión, envié mi aplicación a App Store con éxito y ahora solo cruzo los dedos para que todo lo demás funcione bien al lado de Apple.
(Intenté por primera vez conectarme al nuevo perfil de Aprovisionamiento para el Id ATMxxxxxxx.com.rostsolutions.*
comodín ATMxxxxxxx.com.rostsolutions.*
lugar, pero eso no pareció funcionar).
Pero lo que me desconcierta es que cuando miro la aplicación anterior en iTunes Connects y va a Binary Details, 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 como ATMxxxxxxx.com.rostsolutions.Swisch
?
He estado luchando con un problema similar (estaba creando una 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 dos y tres veces todas las configuraciones de compilación, regeneré el perfil de provisión (sin cambiar nada), volví a descargar y funcionó bien.
Así que obsérvese a sí mismo: si no hay una explicación lógica, siempre puede probar el viejo vudú IT.
También recomiendo la herramienta de configuración de iPhone , que a pesar de su nombre, es útil para verificar qué perfiles de aprovisionamiento tienes en la computadora.
La solución está en la nueva opción en Xcode 5 que dice perfil de aprovisionamiento. Simplemente configure el perfil de aprovisionamiento del objetivo del proyecto en el correcto y funcionará.
Los derechos de firma de código ocurren porque su recurso no contiene el archivo de derechos en los recursos, solo vaya a la configuración de compilación y la firma del código de búsqueda. Los derechos eliminan la entrada para depurar y liberar, compilar de nuevo proyecto verá que no hay ningún error. Aclamaciones
Mi problema se resolvió quitando mi ID de Apple de Preferencias-> Cuentas y luego volviéndola a agregar. Luego, todos mis archivos de perfil de provisión aparecieron en el panel de utilidad Ver detalles. Por error, elegí "Perfil de provisión de equipo de 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 las autorizaciones correctas (por ejemplo, Mapas). Logré lanzar una aplicación con OSX Maps sin el derecho y Apple lo aprobó, ¡pero no apareció ningún mapa en la versión de producción!
Pasé por muchos de los pasos anteriores, pero lo que finalmente funcionó para mí fue refrescar 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. Estos son los pasos:
- Preferencias de Xcode
- Pestaña Cuentas
- Seleccione su ID de Apple
- Pulse el botón Ver detalles en el panel de detalles de ID de Apple
- Presiona el botón Actualizar en la esquina inferior izquierda
Si alguien usa un GameCenter, verifique esta sección en su objetivo. Trabajé con un viejo proyecto y hubo 2 errores (pero todo funcionó bien). Al deshabilitarlo y habilitarlo, se resuelve 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 ella misma.
Si eres como yo y piensas que has intentado TODO , has archivado tu proyecto más de diez veces, te has golpeado la cabeza con el teclado y aún recibes este error. Por favor hazte un favor y simplemente reinicia XCode , funcionó para mí. En algún momento Apple ... Te odio.
Si está construyendo un antiguo proyecto 3.1.5, Xcode 5 tiene algunos errores que lamentablemente hacen imposible la respuesta de Benjamin, ya que no hay perfiles de Aprovisionamiento para elegir. Después de muchas horas de atormentada lectura de los archivos del proyecto Xcode, se me ocurrió esta solución que funcionó para mí:
- En el panel Utilidades (a la derecha) en Xcode 5, en Documento del proyecto, cambie de compatible con Xcode 3.1 a compatible con Xcode 3.2.
- Ingrese el nombre de su organización.
- Cerrar proyecto.
- Abra su archivo de proyecto, por ejemplo,
open -a TextEdit path/to/name.xcodeproj/project.pbxproj
- Elimine las dos cláusulas de distribución (
isa=XCBuildConfiguration
). - Elimine las dos líneas adjuntas en buildConfiguration (una en
PBXNativeTarget
y una enPBXProject
XCConfigurationLists
)
- Elimine las dos cláusulas de distribución (
Ahora está listo para volver a abrir, archivar y enviar a App store - ¡voilà! ¡Funciona de nuevo!
Cómo creo que funciona
Supongo que esto funciona porque Apple, en algún lugar a lo largo de la línea, decidió dejar de necesitar la configuración de distribución por separado, lo cual es algo bueno. Cuando archivo, Xcode automáticamente codifica las señales para su distribución. Esa es la forma en que debería haberse implementado, en primer lugar, es una lástima que Apple no pueda hacer que la migración automática forme parte del IDE; en cambio, nos obligan a los desarrolladores a gastar décadas para hacer que esto funcione.
Si todo lo anterior no funcionó (en mi caso después de un par de días sin suerte, intentándolo todo) solo tengo una aplicación para Mac. ¡TEN CUIDADO CON REVOKE!
1) Revocar a mano todas las "Mac App Distribution" y "Mac Installer Distribution"
2) Limpie los certificados relevantes y las teclas abiertas en Keychain ( Advertencia: exportar antes de eliminar)
3) Reinicie Xcode 4) Vaya 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) Perfiles de provisión -> Distribución -> crear / arreglar provisión personalizada para AppStore (estoy especialmente llamado como "perfil de provisión de Mac para AppStore"
8) Xcode -> Configuración -> Cuenta -> Su cuenta -> Actualizar 9) Xcode Clean -> Archivar -> Validar
Si varios desarrolladores usan la misma cuenta de centro de miembros. Uno de ellos no puede usar un certificado creado por otros porque usaron una solicitud de certificado creada con sus computadoras.
Necesita usar un certificado creado por usted (solicitud de certificado creada con su computadora).
Alternativa, les dijo que le envíen el perfil de desarrollador. no estoy seguro del nombre para usar un certificado creado en otra computadora.
Tuve el mismo problema, pero nada de lo escrito aquí funcionó para mí. Sin embargo, encontré una manera simple que funcionó para mí. He aquí cómo hacerlo:
1) En su proyecto y la configuración de creación de su (s) objetivo (s), elija "Ninguno" para todos los perfiles de Aprovisionamiento y elija "No codificar Firma" para todas las Identidades de Firma de Código.
2) Ahora, elija su objetivo y vaya a la configuración de construcción. En la configuración de liberación de identidad de firma de código, seleccione "Distribución de iOS" para "cualquier iOS SDK". Y luego, en la configuración de Liberación de perfil de provisión, elija su perfil de distribución para "Cualquier iOS SDK". Después, su 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 compilación y valide. Ahora debería funcionar bien. ¡Eso es!