Error de código compartido: no se puede encontrar el perfil de aprovisionamiento después de eliminar el perfil caducado


500

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

Error de signo de código: no se puede encontrar el perfil de aprovisionamiento (cadena larga).

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

Respuestas:


856

A veces, su archivo de proyecto xcode se estropea, 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 del 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. Luego, vuelva a abrir el proyecto en xcode, vaya a la configuración y vuelva a seleccionar su nuevo perfil. Esto aclara problemas como ese la mayor parte del tiempo. 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";

210
El archivo .xcodeproj es en realidad un directorio, como un paquete de aplicaciones. Si hace clic con el botón derecho en el buscador, puede seleccionar mostrar el contenido del paquete, y luego verá varios archivos en su interior (o en el terminal simplemente cd en él). El archivo de proyecto real es el que está allí con una extensión .pbxproj. Una vez que lo abra con un editor de texto, las líneas que está buscando deben comenzar con 'PROVISIONING_PROFILE = o' '"PROVISIONING_PROFILE [sdk = iphoneos *]" ='. Elimina todo eso y entonces deberías ser bueno.
Brad The App Guy el

2
Descubrí que, además de lo anterior, tenía que eliminar todos mis perfiles, volver a descargarlos del portal de aprovisionamiento y volver a importarlos en XCode. Luego, en Configuración de compilación / Firma de código, seleccione el perfil adecuado para todas las configuraciones de compilación.
Jay Imerman

11
Sigue siendo un valioso consejo con XCode4 en 2012. ¡Gracias!
Alexey Rusakov

66
... aaaa y todavía valiosos consejos con Xcode6 en 2014! ¡Muchas muchas gracias!
Tom van Zummeren

44
Lo único que funcionó para mí: Preferencias -> Cuentas -> Ver detalles -> Actualizar. Eso recargó todos los perfiles de aprovisionamiento del portal de desarrollo. Espero que esto ayude a alguien
blackhawk4152

129

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

En XCode, en el panel "Grupos y archivos", expanda "Objetivos" y haga doble clic en el objetivo de su aplicación. Esto abre el panel de información para el objetivo. En la sección "Compilar", verifique la sección "firma de código" para ver si hay perfiles antiguos y reemplácelos por el correcto.

Tenga en cuenta 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
¡Gracias! Lo intentaré la próxima vez que ocurra :)
quantumpotato

66
y asegúrese de seleccionar la configuración de compilación correcta primero :)
Johnus

1
Esto no siempre funciona. A veces todavía tienes que entrar y cambiarlo manualmente como se muestra en la primera respuesta.
SpaceTrucker

Solo otra nota para hacer eco de SpaceTrucker: este método no siempre funciona. La respuesta aceptada garantiza que Xcode dejará de buscar ese perfil fantasma.
Simone Manganelli

Descubrí que, además de lo anterior, tenía que eliminar todos mis perfiles, volver a descargarlos del portal de aprovisionamiento y volver a importarlos en XCode. Luego, en Configuración de compilación / Firma de código, seleccione el perfil adecuado para todas las configuraciones de compilación.
Jay Imerman

76
  1. Propiedades de proyecto y objetivos -> "No codificar signo" -> Aceptar -> cmd + S (o cmd + B);
  2. Propiedades de proyecto y objetivos -> "Su perfil de aprovisionamiento" -> Aceptar

  3. ¡Todo funciona de nuevo!


44
Esta es la única solución que funcionó para mí (usando XCode4). Construir la aplicación con "No firmar código" seleccionado fue un paso obligatorio para mí.
Chazbot

Esta parece una mejor solución que la que tiene más de 200 votos a favor, porque Xcode podría cambiar la forma en que escribe su archivo de proyecto en el futuro.
Danyal Aytekin

1
Esta es la solución correcta que funcionó para mí en Xcode 4.2
Selvin

10

Estoy de acuerdo con la respuesta de Brad, que puede solucionar este problema editando su objetivo / 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 versiones posteriores, hay una manera mucho más fácil de acceder a este texto y seleccionarlo y eliminarlo. En el Navegador de proyectos a la izquierda, seleccione 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 texto, y puede buscar PROVISIONING y eliminar la línea problemática, allí mismo, en el panel del editor de Xcode.


Después de esto, no tiene que cerrar y abrir el proyecto. Mejor enfoque :)
viral

6

Acabo de ver una variación en este tema: entré en el archivo project.pbxproj según las notas de Brad Smith anteriores, excepto en este caso que todas las líneas PROVISIONING_PROFILE parecían ser correctas, sin que ocurriera la cadena de perfil "mala" que XCode no podía No encuentro

Sin embargo, la solución fue la misma: eliminar TODAS las líneas PROVISIONING_PROFILE en project.pbxproj, aunque parecían "buenas" en teoría, y luego volver a abrir el proyecto en XCode.


4

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 - eliminar toda la línea
  5. Presione n hasta que no se encuentren más
  6. Ctrl + x para guardar y cerrar

3

En mi caso, el problema se resolvió abriendo Window -> Organizer, seleccionando mi dispositivo y eliminando el antiguo perfil de aprovisionamiento en el panel "Aprovisionamiento" a la derecha. El viejo ya estaba marcado con un símbolo rojo de "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 reiniciar la aplicación, la hice funcionar sin problemas.


+1, a veces no he podido instalarlo porque un perfil caducado, ¡ni siquiera con el mismo identificador! - Estaba en mi dispositivo.
quantumpotato

Este funcionó para mí, pero también tuve que relanzar XCode para que funcionara.
Matt

3

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

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

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

2) abra project.pbxprojcon un editor de texto (no recomiende textedit ya que puede arruinar el formato)

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 CODE_SIGN_IDENTITYy "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) Echa un vistazo PROVISIONING_PROFILEy "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 botón derecho en el perfil> Revelar en Finder> El nombre de archivo de .mobileprovision es su ID de perfil.

7) Desplácese hacia abajo en project.pbxprojy 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 diga/* End XCBuildConfiguration section */

8) Asegúrese de que la segunda sección coincide con la primera sección para que CODE_SIGN_IDENTITY, "CODE_SIGN_IDENTITY[sdk=iphoneos*], y PROVISIONING_PROFILEestán todos llenos de.


2

Una sugerencia que haré ya que nadie lo ha dicho aún: POR FAVOR, POR FAVOR, haga una copia de seguridad de todo su archivo .xcodeproj ANTES de comenzar a modificar su contenido. Arruinar el archivo del proyecto y no tener copia de seguridad dará lugar a una experiencia muy desagradable.

Poder retirarse de una edición puede ser una bendición.


Sí, esta es la razón por la cual los dioses de SCM hicieron el control de la fuente.
Br

1

Acabo de encontrar este problema en mi XCode4. Para solucionarlo, debe poner todas las disposiciones correctas en la configuración de depuración y lanzamiento.

Intenté enviar (archivando) mi aplicación. Así que simplemente cambio las disposiciones de Depuración a "No codificar señal", y la disposición de Liberación a la disposición de la tienda de aplicaciones de mi aplicación.

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


1

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


1

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


Esto se hace manualmente modificando el archivo del proyecto xcode en un editor de texto, y a menudo he tenido que hacer esto para comenzar nuevamente cuando llego a un estado roto. Conocer ambas cosas que se pueden eliminar a menudo es muy útil. Buen punto.
Warren P

0

Lamentablemente, este enfoque no funcionó para mí. Pero aquí hay una solución que funcionó para mí (para que esto funcione, necesita un archivo de proyecto que funcione en Subversion 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? ) - Usé Tortoise, mi máquina Windows y este Tutorial ( http://tortoisesvn.net/docs/nightly/TortoiseSVN_en /tsvn-howto-rollback.html ) para revertir a un archivo de proyecto anterior.

Como el Tutorial no funcionó para mí, simplemente utilicé Tortoise para guardar la revisión de trabajo de mi archivo de proyecto en un dispositivo USB para portarlo a mi mac. Después de eso, reemplacé el nuevo archivo de proyecto roto con el antiguo que funcionaba, lo limpié y funcionó de maravilla.


0

Estaba teniendo problemas porque actualicé mi perfil de aprovisionamiento AdHoc con algunos dispositivos nuevos para usar en TestFlight. Se supone que esto está sucediendo porque xcode tiene una referencia anterior a su perfil de aprovisionamiento en la configuración de compilación de firma de códigos para el proyecto o los objetivos. La forma en que arreglé la mía fue:

  1. Vaya a la configuración de compilación de destino y a la configuración de compilación del proyecto. Bajo la firma de código, cambie todos los perfiles de aprovisionamiento 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 a la configuración de compilación de destino y proyecto y establezca sus perfiles de aprovisionamiento en los perfiles de aprovisionamiento recientemente actualizados (con suerte) apropiados.

0

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

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

ingrese la descripción de la imagen aquí


0

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.