Error de Codesign: no se puede encontrar el perfil de aprovisionamiento después de eliminar el perfil caducado

Intenté reconstruir una aplicación que funcionaba ayer. Recibí un mensaje de que un perfil había caducado, así que lo eliminé del iPod y de iTunes. Cuando elegí un nuevo perfil (uno con un * en el identificador), ahora recibo un error:

Code Sign Error: Provisioning Profile (long string) can't be found. 

¿Qué me estoy perdiendo? Miré a través de preguntas relacionadas y ya no veía este escenario.

A veces, su archivo de proyecto xcode se arruina, especialmente si tiene un proyecto antiguo y lo creó primero con una versión anterior de xcode / iphone sdk. Lo que debe hacer es abrir el archivo de proyecto en un editor de texto, buscar la “cadena larga” de su error y borrar manualmente esa línea. De hecho, debe continuar y borrar cualquier línea que apunte a cualquier perfil de aprovisionamiento. A continuación, vuelva a abrir el proyecto en xcode, vaya a la configuración y vuelva a seleccionar su nuevo perfil. Esto aclara problemas así la mayor parte del tiempo. Las líneas que apuntan a los perfiles de provisión se verán así:

 PROVISIONING_PROFILE = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB"; "PROVISIONING_PROFILE[sdk=iphoneos*]" = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB"; 

Aquí hay una solución más simple que funcionó para mí y que no requiere la edición manual del archivo de proyecto:

En XCode, en el panel “Grupos y archivos”, expanda “Objetivos” y haga doble clic en el objective de su aplicación. Esto abre el panel de información para el objective. En la sección “Crear”, compruebe la sección “firma de código” para cualquier perfil antiguo y reemplácelo por uno correcto.

Tenga en cuenta que esto es diferente a hacer doble clic en el icono de su proyecto y cambiar el perfil desde allí. Bastante sorprendente 🙂

O yo

  1. Propiedades de proyectos y objectives -> “No codificar señal” -> Aceptar -> cmd + S (o cmd + B);
  2. Propiedades de proyectos y objectives -> “Su perfil de provisión” -> Aceptar

  3. ¡Todo funciona de nuevo!

Estoy de acuerdo con la respuesta de Brad, que puede solucionar este problema editando su objective / proyecto a mano, eliminando líneas como esta:

 PROVISIONING_PROFILE = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB"; "PROVISIONING_PROFILE[sdk=iphoneos*]" = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB"; 

Sin embargo, en Xcode 4.2 y posterior, hay una forma mucho más fácil de acceder a este texto y seleccionarlo y eliminarlo. En Project Navigator a la izquierda, seleccione su proyecto (la línea más alta del Project Navigator). Ahora simplemente elija Ver> Editor de versiones> Mostrar editor de versiones. Esto muestra su proyecto como texto, y puede buscar PROVISIONING y eliminar la línea problemática, allí mismo en el panel del editor de Xcode.

Acabo de ver una variación en este tema: entré en el archivo project.pbxproj según las notas de Brad Smith anteriores, excepto que en este caso todas las líneas PROVISIONING_PROFILE parecían ser correctas, sin que apareciera la cadena de perfil “incorrecta” que XCode couldn no encuentra

Sin embargo, la solución era la misma: eliminar TODAS las líneas PROVISIONING_PROFILE en project.pbxproj, a pesar de que se veían “buenas” en teoría, y luego volver a abrir el proyecto en XCode.

Para lograr la solución de Brad completamente en Terminal, use estos comandos

  1. cd [Xcode project parent]
  2. vi [Xcode project name].xcodeproj/project.pbxproj
  3. /[offending provisioning profile] [Enter]
  4. dd – borra toda la línea
  5. Presione n hasta que no se encuentren más
  6. Ctrl + x para guardar y cerrar

En mi caso, el problema se resolvió abriendo Window -> Organizer, seleccionando mi dispositivo y eliminando el antiguo perfil de provisión en el panel de “Aprovisionamiento” a la derecha. El anterior ya estaba marcado con un símbolo “x” rojo, pero el iPhone todavía lo estaba usando.

Además de ese perfil, también aparecía el nuevo (con el mismo nombre) y después de simplemente relanzar la aplicación, lo tenía funcionando sin problemas.

Acabo de pasar una hora más o menos haciendo esto y, con la ayuda de los consejos de Brad y algunos cambios adicionales, todo funcionó.

Lo he hecho usando lo siguiente: 10.7.3, Xcode 4.3.2, iOS 5.1 por cierto.

1) Haga clic derecho en su myapp.xcodeproj y seleccione el contenido del paquete

2) abra project.pbxproj con un editor de texto (no recomiende textedit ya que puede arruinar el formateo)

3) Desplácese hacia abajo hasta encontrar /* Begin XCBuildConfiguration section */

4) Tenga en cuenta que tiene una sección de depuración y liberación

5) En la sección de lanzamiento, eche un vistazo a CODE_SIGN_IDENTITY & "CODE_SIGN_IDENTITY[sdk=iphoneos*]" debería verse más o menos así:

 CODE_SIGN_IDENTITY = "iPhone Distribution: MyCompany LLC"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: MyCompany LLC"; 

6) Eche un vistazo a PROVISIONING_PROFILE y "PROVISIONING_PROFILE[sdk=iphoneos*]" deberían verse así:

 PROVISIONING_PROFILE = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"; "PROVISIONING_PROFILE[sdk=iphoneos*]" = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"; 

Esto debe coincidir con su perfil de aprovisionamiento en Xcode. Para ver si coinciden, abra Xcode> Ventana> Organizador> Dispositivos> Perfiles de provisión> Haga clic con el botón derecho en el perfil> Mostrar en el Finder> El nombre de archivo de .mobileprovision es su ID de perfil.

7) Desplácese hacia abajo en project.pbxproj y busque una segunda instancia de la sección de publicación. La segunda instancia de la sección de publicación debe finalizar con un comentario que diga /* End XCBuildConfiguration section */

8) asegúrese de que la segunda sección coincida con la primera sección para que CODE_SIGN_IDENTITY, "CODE_SIGN_IDENTITY[sdk=iphoneos*] , y PROVISIONING_PROFILE estén todos llenos.

Una sugerencia que haré ya que nadie la ha dicho: FAVOR, POR FAVOR, haga una copia de seguridad de su archivo .xcodeproj completo ANTES de que comience a modificar sus contenidos. Atornillar el archivo del proyecto y no tener una copia de seguridad conducirá a una experiencia muy desagradable.

Ser capaz de retroceder en una edición puede ser un regalo del cielo.

Acabo de encontrar este problema en mi XCode4. Para solucionarlo, debe colocar todas las disposiciones correctas en las configuraciones de depuración y liberación.

Estaba intentando enviar (archivando) mi aplicación. Así que solo cambio las disposiciones de Debug a “Do not Code Sign” y la disposición de la versión a la disposición de la tienda de aplicaciones de mi aplicación.

Esto lo arregla y me permite archivar normalmente. Espero que ayude.

Seleccione las líneas de la designación de código que están en blanco en Cualquier iOS SDK y seleccione el certificado correcto.

La solución de Brad Smith funcionó para mí, pero también tuve que eliminar el campo CODE_SIGN_IDENTITY para que funcione.

Lamentablemente, este enfoque no funcionó para mí. Pero aquí hay una solución que funcionó para mí (para que funcione esto, necesitas un archivo de proyecto en funcionamiento, más o menos):

Regresé a una versión funcional de mi archivo de proyecto. Como no es posible revertir con Xcode ( ¿Dónde está la opción ‘Revertir’ en el control de código fuente de Xcode 4? ) – utilicé Tortoise, mi máquina con Windows y este tutorial ( http://tortoisesvn.net/docs/nightly/TortoiseSVN_en /tsvn-howto-rollback.html ) para retroceder a un archivo de proyecto anterior.

Como el Tutorial no funcionó para mí, acabo de utilizar Tortoise para guardar la revisión de trabajo de mi archivo de proyecto en un dispositivo USB para transferirlo a mi mac. Después de eso, reemplacé el nuevo archivo de proyecto roto con el anterior, se limpió y funcionó como un amuleto.

Tenía problemas porque actualicé mi perfil de aprovisionamiento de AdHoc con algunos dispositivos nuevos para usar en TestFlight. Supuestamente, esto está sucediendo porque xcode tiene una referencia anterior a su perfil de aprovisionamiento, ya sea en la configuración de comstackción de diseño de código para el proyecto o los objectives. La forma en que arreglé la mía fue para:

  1. Vaya a la configuración de comstackción de destino y a la configuración de comstackción del proyecto. En la firma de código, cambie todos los perfiles de provisión a otra cosa.
  2. Vaya a dispositivos / perfiles de aprovisionamiento en el organizador, elimine los perfiles ofensivos, luego haga clic en el botón Actualizar en la parte inferior derecha.
  3. Vuelva al objective y a la configuración de comstackción del proyecto, y configure sus perfiles de aprovisionamiento en los perfiles de aprovisionamiento actualizados (con suerte) actualizados.

Al menos en Xcode 5, esto es lo que me solucionó el problema:

En Perfil de aprovisionamiento, seleccione el perfil de aprovisionamiento infractor y luego seleccione un perfil de aprovisionamiento válido en el menú desplegable.

enter image description here

Puede eliminar la referencia anterior del archivo de aprovisionamiento. Luego, después de importar nuevo perfil de aprovisionamiento y seleccionar el generador de Xcode.

    Intereting Posts