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.

cuantumpotato
fuente

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";
Brad The App Guy
fuente
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

O yo
fuente
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!

usuario732414
fuente
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.

mate
fuente
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.

theevank
fuente
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
Ingeniero Mecánico
fuente
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.

stack-o-frankie
fuente
+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.

bobbypage
fuente
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.

Richard Brown
fuente
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.

GeneCode
fuente
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.

Sunkencity
fuente
1

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

jean_jean
fuente
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.

Chris Conway
fuente
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.
George McKibbin
fuente
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í

RawMean
fuente
0

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

annu
fuente