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

Intenté rebuild una aplicación que estaba funcionando ayer. Recibí un post que decía 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 no vi este escenario ya.

A veces, su file de proyecto xcode se ensucia, especialmente si tiene un proyecto antiguo y lo creó primero con una versión anterior de xcode / iphone sdk. Lo que necesita hacer es abrir el file del proyecto en un editor de text, search la 'cadena larga' de su error y borrar manualmente esa línea. De hecho, debería seguir adelante y borrar cualquier línea que apunte a cualquier perfil de aprovisionamiento. Luego vuelva a abrir el proyecto en xcode, vaya a la configuration y vuelva a seleccionar su nuevo perfil. Esto aclara problemas como ese la mayoría del time. Las líneas que apuntan a los perfiles de aprovisionamiento 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 file del proyecto:

En XCode, en el panel "Grupos y files", expande "Destinos" y haz doble clic en el objective de tu aplicación. Esto abre el panel de información para el objective. En la sección "Generar", marque la sección "firma de código" para cualquier perfil antiguo y reemplácelo por uno correcto.

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

O yo

  1. Propiedades de Project & Targets -> "No codifique el signo" -> OK -> cmd + S (o cmd + B);
  2. Propiedades de Proyectos y destinos -> "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 cualquier línea 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 versiones posteriores, hay una manera mucho más fácil de acceder a este text y seleccionarlo y eliminarlo. En el Navegador de proyectos a la izquierda, select su proyecto (la línea superior del Navegador de proyectos). Ahora simplemente elija Ver> Editor de versiones> Mostrar editor de versiones. Esto muestra su proyecto como text, y puede search PROVISIÓN y eliminar la línea problemática, allí mismo, en el panel del editor de Xcode.

Acabo de ver una variación de este problema: entré en el file project.pbxproj de acuerdo con 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 "mala" que XCode podría No lo encuentre.

Sin embargo, la solución era la misma: eliminando TODAS las líneas PROVISIONING_PROFILE en project.pbxproj, aunque se veían "bien" en teoría, y luego volvían a abrir el proyecto en XCode.

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

  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 save y cerrar

En mi caso, el problema se resolvió abriendo Ventana -> Organizador, seleccionando mi dispositivo y eliminando el Perfil de aprovisionamiento anterior en el panel "Aprovisionamiento" de la derecha. El antiguo ya estaba marcado con un símbolo rojo "x" 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, tenía que funcionar sin problemas.

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

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

1) Haga clic derecho en su myapp.xcodeproj y select el contenido del package

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

3) Desplácese hasta que encuentre /* Begin XCBuildConfiguration section */

4) Observe que tiene secciones de debugging y publicación.

5) En la sección de lanzamiento, eche un vistazo a CODE_SIGN_IDENTITY & "CODE_SIGN_IDENTITY[sdk=iphoneos*]" , debería verse 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 debería coincidir con su perfil de aprovisionamiento en Xcode. Para ver si coinciden, abra Xcode> Ventana> Organizador> Dispositivos> Perfiles de aprovisionamiento> Haga clic con el button derecho en el perfil> Mostrar en Finder> El nombre de file de la .mobileprovision es su id. De perfil.

7) Desplácese hacia abajo en el project.pbxproj y encuentre una segunda instancia de la sección de lanzamiento. La segunda instancia de la sección de lanzamiento debe terminar con un comentario que dice /* 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 completados.

Una sugerencia haré ya que nadie lo ha dicho todavía: POR FAVOR, POR FAVOR, haga una copy de security de todo su file .xcodeproj ANTES de comenzar a modificar sus contenidos. Atornillar el file del proyecto y no tener copy de security dará lugar a una experiencia muy desagradable.

Ser capaz de retroceder de 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 la configuration de Depuración y Liberación.

Estaba intentando enviar (archivando) mi aplicación. Por lo tanto, solo cambio las disposiciones de debugging a "No firmar código" y la disposition de liberación a la disposition de la aplicación de mi aplicación.

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

Seleccione las líneas en el código que están en blanco debajo de cualquier SDK de iOS y select el certificate correcto.

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

Desafortunadamente, este enfoque no funcionó para mí. Pero he aquí una solución que funcionó para mí (para que esto funcione necesitas un file de proyecto en funcionamiento en Subversion más o less):

Volví a una versión funcional de mi file de proyecto. Como no es posible volver con Xcode ( ¿Dónde está la opción 'Revertir' en el Control de fuente de Xcode 4? ), Utilicé Tortuga, mi máquina de Windows y este Tutorial ( http://tortoisesvn.net/docs/nightly/TortoiseSVN_en /tsvn-howto-rollback.html ) para revertir a un file de proyecto anterior.

Como el Tutorial no funcionó para mí, simplemente utilicé a Tortoise para save la revisión de trabajo de mi file de proyecto en un dispositivo USB para transferirlo a mi Mac. Después de eso, reemplacé el nuevo file de proyecto roto por el antiguo que funcionaba, limpié y funcionó como un encantamiento.

Estaba teniendo problemas porque actualicé mi perfil de aprovisionamiento de AdHoc con algunos dispositivos nuevos para usar en TestFlight. Suponiendo que esto está sucediendo porque xcode tiene una reference anterior a su perfil de aprovisionamiento en la configuration de compilation de encoding para el proyecto o los objectives. La forma en que arreglé la mía fue:

  1. Vaya a la configuration de compilation de destino y la configuration de compilation de proyecto. En la firma de código, cambie todos los perfiles de suministro a otra cosa.
  2. Vaya a dispositivos / aprovisionamiento de perfiles en el organizador, elimine los perfiles ofensivos, luego click el button de actualización en la esquina inferior derecha.
  3. Regrese al destino y a la configuration de compilation del proyecto y establezca sus perfiles de aprovisionamiento en los perfiles de aprovisionamiento apropiados (con suerte) recién actualizados.

Al less en Xcode 5, esto es lo que resolvió el problema para mí:

En el perfil de aprovisionamiento, select el perfil de aprovisionamiento ofensivo y luego select un perfil de aprovisionamiento válido en el menu desplegable.

introduzca la descripción de la imagen aquí

Podría eliminar la reference anterior del file de aprovisionamiento. Luego, después de importar el nuevo perfil de aprovisionamiento y seleccionar el creador de Xcode.