Xcode 10: no se encontró un perfil de aprovisionamiento válido para este ejecutable


222

Desde ayer recibí el siguiente error al intentar ejecutar una aplicación en mi dispositivo: "No se encontró un perfil de aprovisionamiento válido para este ejecutable". Esto es después de actualizar a Xcode 10. La construcción con Xcode 9 la semana pasada funcionó sin problemas.

He revisado las otras discusiones sobre el error, pero ninguna de las soluciones funciona.

El problema no se limita a un solo proyecto en el que he estado trabajando, ya que afecta a varios de diferentes equipos de firma.

Hasta ahora he intentado lo siguiente:

  • Proyecto de limpieza

  • Limpieza de datos derivados

  • Desinstalar Xcode, eliminando las preferencias y los archivos relacionados con él.

  • Instalar Xcode en una Mac completamente diferente

  • Pruebas con diferentes dispositivos.

  • Deshabilitar el dispositivo en el perfil de desarrollador y dejar que Xcode lo habilite nuevamente.

  • Eliminar todos los certificados en el portal del desarrollador y volver a crearlos

  • Desmarcar y volver a marcar "Administrar automáticamente la firma"

  • Trashing el perfil de aprovisionamiento y dejar que Xcode lo vuelva a crear

  • Crear un perfil de aprovisionamiento manual en el perfil de desarrollador

El proyecto no contiene pruebas, por lo que no puede haber un problema con la configuración de firma incorrecta en ese objetivo. La fecha / hora está configurada en Automático

Una cosa a tener en cuenta es que aquí no se enumeran los Perfiles de aprovisionamiento, excepto el manual que creé: https://developer.apple.com/account/ios/profile/

Esperaría que el xcode generado uno se muestre como lo hacen para todos los demás clientes.

A continuación se encuentran las configuraciones de firma que estoy usando actualmente

configuración de perfil de aprovisionamiento

Todavía tengo que intentar degradar Xcode a una versión anterior para ver si eso funciona. Aparte de eso, no tengo idea de qué probar a continuación.


¿Has agregado la cuenta de desarrollador en las preferencias de Xcode?
Ankit Jayaswal

@AnkitJayaswal Varias veces, nunca funcionó. Sin embargo, pude resolverlo bajando a 9.4.1, por lo que el problema parece estar relacionado con Xcode 10 de alguna manera. Debería poder enviar aplicaciones con la versión anterior de Xcode por un tiempo, ¿verdad?
Daniel Andersson

2
Sí, puede enviar las compilaciones desde xcode 9 y su versión hasta marzo de 2019 developer.apple.com/ios/submit
Ankit Jayaswal

También probé con Xcode 10 y no enfrento tales problemas missing provisioning-profile.
Ankit Jayaswal

3
¿Cambió la fecha de su iPhone después de los datos de vencimiento de su certificado? Me enfrenté a este problema debido a esta razón.
Nayak anuved

Respuestas:


478

Estaba luchando con esto hoy, fue súper frustrante. Por ahora, simplemente vaya a "File"> "Project Settings..."(o en algunos casos "Workspace Settings...") y luego seleccione "Legacy Build System"del "Build System"menú desplegable.


1
Esto también funcionó para mí, por lo que puedo crear aplicaciones con Xcode 10 sin la necesidad de volver a Xcode 9. Envié una compilación a App Store Conenct y pude publicarla en TestFlight. Por lo tanto, hay un par de soluciones disponibles hasta que el problema se solucione correctamente. ¿Alguna nota de Apple que diga cuánto tiempo se le permitiría usar el sistema de compilación heredado al enviar aplicaciones?
Daniel Andersson

99
Pero ¿qué significa esto? ¿Qué efecto tiene y cómo sabemos que podemos cambiar la configuración nuevamente?
Siyah

44
Esto funcionó en una construcción de Córdoba: excelente trabajo. Evidentemente, la CLI de Cordova tiene un argumento para omitir: cordova build ios --buildFlag = '- UseModernBuildSystem = 0' Ver más aquí: github.com/apache/cordova-ios/issues/407
Victor

66
No hay configuraciones del proyecto en Archivo. Tuve que hacer clic en Configuración del espacio de trabajo y luego seleccionar "Sistema de compilación heredado" en el menú desplegable Construir sistema en la Configuración del espacio de trabajo compartido y por usuario.
diablo rojo

99
No funciona para mí: ((. Mi versión de Xcode es 10.1. La versión de mi iPhone OS es 12.1
Hamed Ghadirian

94

@Stephen tks esto se resolvió por mí. Solo necesito ir -> Archivo -> Configuración de Worspace -> Configuración de compilación (cambie aquí a "Sistema de compilación heredado")ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí


1
Frustrante, esto es todo lo que me ha funcionado también. Registré mi UDID, creé mi perfil, tengo un certificado de desarrollo, todo está vinculado a la aplicación que estoy desarrollando, hice todo lo posible para poder ejecutar directamente en el dispositivo, todavía falla cada vez, hasta que lo cambié a legado, trabajó por primera vez ...
Grant

62

[editar] Nota 2020: Solía ​​firmar manualmente este proyecto. En los proyectos donde firmé automáticamente, nunca tuve este problema. [/editar]

Tuve el mismo problema y pasé horas buscando una respuesta, eliminando perfiles, limpiando proyectos, etc.

¿Has distribuido tu aplicación? Debe volver a su perfil de desarrollador, pero no en General en la configuración del proyecto, sino en Configuración de compilación .

En Firma , mire su Identidad de firma de código .

Asegúrese de que tanto su depuración como su versión estén configuradas para su desarrollador iOS y no para su distribución iOS ; o su perfil de aprovisionamiento de desarrollador de iOS, si no está configurado en los valores automáticos.

Lo mismo ocurre con el perfil de aprovisionamiento. Debe ser su perfil de desarrollo, y no su perfil de distribución. ingrese la descripción de la imagen aquí

Espero que esto ayude a los futuros desarrolladores que lo necesiten.


Para aclarar (porque estaba confundido por esta recomendación cuando lo leí por primera vez): este cambio de versión para iOS Developer es solo mientras se prueba directamente en un dispositivo conectado; tendrá que volver a cambiar a Distribución iOS cuando se compile para subir a testflight / tienda de aplicaciones, ¿verdad?
ToolmakerSteve

1
En todo sinceramente: no. No tuve que hacer esto. Una posible razón para que esto suceda podría ser porque tuve que configurar los certificados nuevamente y posiblemente "instalé" la distribución antes del desarrollo. Solo estoy adivinando, pero para responder a su pregunta: todavía los tengo configurados como Desarrollo, y elegí Distribución al archivar la compilación para cargarla en la App Store.
Rickard Elimää

2
¡Esto realmente me ayudó! <3
bobber205

Esto me lo arregló. Solo recibía el problema cuando intentaba crear un perfil de la aplicación, funcionaba bien, solo la ejecutaba normalmente. Tenía una cuenta de desarrollador para depuración y una de distribución para lanzamiento. Esto honestamente me parece un error de XCode / Profiling.
James

1
Lo tengo funcionando pero necesitaba un paso más. Como estaba lidiando con las pruebas en un iPhone atado, no me preocupé por ir a la App Store y configurar mi certificado de "Distribución iOS". Como estaba haciendo desarrollo, supuse que solo necesitaría una configuración de certificado de "Desarrollo iOS" en la App Store. Bueno, no funcionó hasta que obtuve un certificado de "Desarrollo iOS" y un certificado de "Distribución iOS".
Stagr.Lee

41

He intentado todas las soluciones anteriores.

Sin embargo, en mi caso, después de horas de dolor de cabeza fue debido a que el Proyecto de prueba no tiene una cuenta válida para aprovisionar la firma. Después, seleccioné un equipo para aprovisionar en el Proyecto de prueba con firma administrada automática. Este problema se fue.


¿Cómo hiciste eso?
diablo rojo

2
@ red-devil Entonces, tendrás que actualizar la gestión de firmas en todos tus proyectos objetivo.
Chen

Gracias hombre, todas las respuestas anteriores no resolvieron mi problema. Tu respuesta hizo la magia.
HungrySoul

26

Usar una carpeta de compilación limpia (comando + shift + K) y la aplicación de reconstrucción puede solucionar este problema en breve. Sin embargo, el tiempo de compilación aumentará ya que ha limpiado la carpeta de compilación.


1
Esto funcionó para mí (además de eliminar datos derivados), mientras que las sugerencias para usar el modo heredado no funcionaron.
Chris

1
Resultó que tenía un equipo diferente para mi objetivo normal frente a mi objetivo de prueba, lo que estaba causando problemas que solo al eliminar los datos derivados se podían restablecer.
Chris

1
Limpiar solo la carpeta de compilación (comando + shift + K) solucionó el problema para mí. Gracias @JeromeLi!
Frío

1
Primero probé la respuesta aceptada ("Modo heredado"), y funcionó para mí. Luego volví a "Nuevo sistema de compilación" e intenté esta sugerencia ("Limpiar carpeta de compilación"). Funcionó también. En resumen, para mí, esta es la mejor respuesta.
user1527225

1
Esto funcionó para mí, gracias. (PD: solo mi iPhone 11 tuvo este problema, mi iPhone Xs Max no tiene este problema y el iPhone 11 fue la primera vez que
instalé

13

Así que este no será el caso para todos, pero pensé que lo publicaría aquí de todos modos, ya que no parece haber ninguna respuesta al respecto.

En mi caso, estaba trabajando en una aplicación que se estaba desarrollando en ReactNative, mi problema era que, aunque mi firma fue correcta en el objetivo principal de la aplicación, el objetivo de la prueba no tenía ninguna firma aplicada.
Por alguna razón, React Native requiere que tanto el objetivo de la aplicación como el objetivo de la prueba estén firmados para instalar la aplicación en un dispositivo.
Especifica esto en la documentación oficial sobre la compilación del dispositivo, sin embargo, es la única instancia que he visto en la que el objetivo de prueba se construye junto con la aplicación para algo más que pruebas.

Para firmar su objetivo de prueba, vaya a la configuración de su proyecto abriendo el navegador de proyectos (⌘1) y seleccione su proyecto en la parte superior.

Dentro del editor principal, seleccione el objetivo de su aplicación principal en Objetivos (debe tener el mismo nombre que su proyecto) y asegúrese de que la firma sea correcta, luego seleccione el objetivo de prueba (probablemente justo debajo del objetivo de su aplicación principal, debe ser el mismo nombre con Pruebas adjunto) y asegúrese de que esté firmado de la misma manera.

Reconstruya su aplicación y ahora debería instalarse con éxito.

El crédito por esto va para Leo Lei, su respuesta aquí me ahorró mucho dolor de cabeza: https://stackoverflow.com/a/48657358/732844

Por otro lado, si alguien sabe por qué reaccionar nativo requiere que su objetivo de prueba se construya junto con el objetivo de su aplicación, ¿podrían informarme? La única razón por la que puedo pensar es para simplificar la interfaz para que reaccionar pueda construir una sola aplicación y ejecutar y probar sin necesidad de reconstruir, pero solo estoy adivinando con esa.


2
Esto me lo arregló donde nada más lo hizo. Gracias por tu publicación.
Christian Chown

2
Muchas gracias por señalar esto. Cambié el nombre del proyecto y cambié los equipos. El objetivo de prueba tenía un antiguo nombre de equipo. He estado luchando por horas ahora. Muchas gracias de nuevo
Alix

Después de horas de dolor de cabeza, esto me arregló. ¡Muchas gracias!
Johnson

8

En mi caso, estos son los pasos para resolver los problemas:

  1. Ve a esta carpeta: ~/Library/MobileDevice/Provisioning Profiles/
  2. Eliminar todo el perfil de aprovisionamiento
  3. En el menú Xcode 10> Producto> Limpiar carpeta de compilación
  4. En el menú Xcode 10> Xcode> Preferencias> Cuenta> Descargar perfiles manuales
  5. En el menú Xcode 10> Producto> Crear / Archivar

La razón para seguir los pasos anteriores es eliminar los viejos perfiles de aprovisionamiento que estropearon el proceso de construcción.


6

Para nuestro equipo, nada ayudó. Pasamos un par de días y probamos todos los pasos mencionados anteriormente en las respuestas y comentarios. Probamos con XCode 10 e incluso XCode 9.2 en una aplicación, que está en la tienda de aplicaciones desde hace muchos años.

El problema comenzó después de actualizar a MacOS Mojave. Desafortunadamente, volver a HighSierra no ayudó entonces.

Al menos pudimos enviar nuevamente a la tienda de aplicaciones después de crear un nuevo certificado y perfil de aprovisionamiento. Pero todavía no podemos probar nuestra aplicación en modo de lanzamiento en un dispositivo real, lo cual es necesario para probar las compras de InApp.

En resumen: ¡archivar y enviar funciona bien, no se ejecuta en un dispositivo real!

Varios desarrolladores, varios dispositivos, macbooks, versiones de XCode ...

Al final, tuvimos que cambiar el AppID para poder volver a probar en un dispositivo real.

Por lo tanto, ejecutamos dos proyectos diferentes ahora: uno para enviar a TestFlight / AppStore con el AppID real y otro para fines de desarrollo con otro AppID.

Aunque esto solo ocurre en UNA aplicación en particular de nuestra compañía y no en todas las demás, esperamos encontrar problemas similares en el futuro a medida que las cosas empeoren con las herramientas de desarrollo de Apple ...


5

Tuve este problema en Xcode 10.3 después de cambiar a mi objetivo de prueba de unidad XCTest y luego volver al objetivo de tiempo de ejecución del proyecto.

Resulta que tenía un equipo diferente seleccionado en mi perfil de aprovisionamiento para cada objetivo.

Arreglarlo :

  • Carpeta de compilación limpia

  • Asegúrate de que todos los objetivos usen el mismo equipo. Consulte Firma de perfil en la pestaña general.

  • Si no usa el mismo equipo para todos los objetivos, limpie antes de cambiar a un objetivo de construcción con

    equipo diferente seleccionado.


5

Asegúrese de que el perfil de aprovisionamiento provenga del mismo equipo tanto en su objetivo como en sus Pruebas de destino.


1
¡Gracias! Fue el problema que tuve cuando
trabajé

4

En mi caso, la fecha y hora del dispositivo se estableció en una fecha futura. Cambiar la configuración de la fecha a "automático" solucionó el problema.


3

Estaba luchando con el mismo problema y la solución en mi caso fue iniciar sesión en las cuentas de desarrollador. Después de actualizar a Xcode 10, se cerraron todas las cuentas.

Use el menú "Xcode -> Preferencias ... -> Cuentas" y asegúrese de que todas las cuentas que use estén conectadas para que los perfiles de aprovisionamiento sean accesibles.


2

Había seguido todos los pasos anteriores, pero finalmente no funciona. Fui creado Target duplicado y funciona bien. No tengo idea de qué está mal, tal vez un problema de memoria caché

ingrese la descripción de la imagen aquí


1

¿Tal vez cambiaste tu dispositivo de desarrollo? Me pasó cuando compré un nuevo iPhone y le di el mismo nombre que a mi dispositivo anterior. Sin embargo, una compilación limpia solucionó el problema.


1

Lleva mucho tiempo, e hicimos todas las soluciones anteriores y no funcionaron en absoluto, por lo que nuestro equipo decidió eliminar Podarchivos y pod installvolver a ejecutarlos . finalmente, nuestra ipa cargada OTA instalada en el dispositivo del usuario. mejor solución

  1. limpio project menu > Product > Clean Build Folder y/Users/{you user name}/Library/Developer/Xcode/DerivedData

  2. vaya al directorio de su proyecto y elimine Podfile.lock, Podscarpeta,pod_***.framework

  3. corre de pod installnuevo

Hecho


1

Tuve el caso de que mi aplicación se implementaría en mi iPhone pero no en mi reloj. La implementación en el reloj daría el "No se encontró un perfil de aprovisionamiento válido para este ejecutable". error. Esto es con XCode Versión 11.2.1 y con la cuenta de desarrollador gratuita.

Esto es lo que hice para implementarlo en mi reloj:

1) Eliminé mi perfil de aprovisionamiento en XCode. Hice esto yendo a Ventana -> Dispositivos y simuladores. Luego haga clic derecho en el nombre del iPhone y elija "Mostrar perfiles de aprovisionamiento". Desde allí podría borrar el archivo

2) En la pantalla Dispositivos y simuladores también eliminé mi aplicación de la sección "Aplicaciones instaladas".

3) Hizo una "carpeta de compilación limpia" (Producto -> Carpeta de compilación limpia)

4) En la "Configuración de compilación" -> "Sección de firma", me aseguré de que cada objetivo (iPhone, Pruebas y reloj) tuviera la misma configuración (equipo de desarrollo, estilo de firma de código, perfil de aprovisionamiento configurado en automático, etc.).

detalles de configuración de compilación

5) Aseguró que el directorio ~ / Library / MobileDevice / Provisioning Profiles estaba vacío.

6) Teléfono desconectado de la computadora

7) Computadora, teléfono y reloj reiniciados

8) Volvió a enchufar el teléfono a la computadora y revisé las instrucciones de "confíe en esta máquina" en el teléfono y mire.

9) corrió aplicación. ¡Funcionó!


Tuve el mismo problema con mi reloj Apple, y esto me ayudó. También desvinculé y volví a emparejar mi reloj Apple en algún lugar del proceso. ¡Gracias!
Radu Vlad

1

Hoy tuve el mismo error al instalar una aplicación en mi dispositivo. El problema ocurrió después de que actualicé al nuevo xCode 11.4.

Lo que hice para solucionar el problema:

  • Dispositivo no vinculado (Xcode> Ventana> Dispositivos y simuladores> Dispositivo de clic izquierdo para desvincular el dispositivo.
  • Reiniciar iPhone
  • Carpeta de compilación limpia (Xcode> Producto> Carpeta de compilación limpia)
  • Limpiar datos derivados (en ../library/Developer/Xcode/DerivedData)
  • Limpiar carpeta de compilación nuevamente (Xcode> Producto> Limpiar carpeta de compilación)
  • Crear aplicación en el dispositivo.

En mi caso, solucioné el problema usando estos pasos sin desemparejar el dispositivo.
Muhammad Yusuf

0

En mi caso, donde nada más ayudó, hice lo siguiente:

  1. cambiar el AppID a uno nuevo
  2. XCode generó automáticamente nuevos perfiles de aprovisionamiento
  3. ejecuta la aplicación en un dispositivo real -> ahora ha funcionado
  4. cambie de nuevo el AppID al ID original
  5. trabajos

Antes de esto, he probado todos los pasos que se mencionaron aquí. Pero solo esto ayudó.


0

Para mí, incluso si el certificado de distribución y el perfil de aprovisionamiento estaban disponibles para Xcode, la selección de Gestión automática de firmas durante el proceso de distribución hizo que fallara. Hice lo siguiente. Como se mencionó anteriormente, creé un nuevo certificado de distribución y un perfil de aprovisionamiento y luego, durante el proceso de distribución, seleccioné manualmente el certificado y el perfil de aprovisionamiento y Voilaaaa. También me aseguré de estar en la última versión 10.1.


0

Parece que Apple solucionó este error en la versión Xcode 10.2 beta 2.

https://developer.apple.com/documentation/xcode_release_notes/xcode_10_2_beta_2_release_notes

Problemas resueltos de firma y distribución

Cuando crea un archivo de una aplicación macOS y utiliza un certificado de firma de ID de desarrollador, Xcode incluye una marca de tiempo segura en la firma del archivo. Como resultado, ahora puede enviar una aplicación archivada al servicio notarial de Apple con xcrun altool sin necesidad de volver a firmarla con una marca de tiempo. (44952627)

Cuando está creando un archivo de una aplicación macOS, Xcode ya no inyecta el derecho com.apple.security.get-task-allow en la firma de la aplicación. Como resultado, ahora puede enviar una aplicación archivada al servicio de notario de Apple usando xcrun altool sin primero tener que quitar este derecho. (44952574)

Se solucionó un problema que causaba que el flujo de trabajo de distribución informara información inexacta o faltante sobre el certificado de firma, el perfil de aprovisionamiento y los derechos utilizados al exportar o cargar una aplicación. (45761196)

Se solucionó un problema por el cual los archivos .ipa adelgazados no se firmaban cuando se exportaban desde el Organizador. (45761101)

La versión Xcode 10.2 beta 2 se puede descargar aquí: https://developer.apple.com/download/


3
eso es genial. pero si va a crear aplicaciones para la tienda de aplicaciones, no le permitirá cargar la ipa si está utilizando un software beta
Yasha


0

Después de que cansada la mayor parte de la solución, me encontré con lo que su hacer que funcione sin ningún problema para mí, Su resuelto por ir a developer.apple.comcontinuación, accounta continuación, Certificates, identifiers & profilesy que haga clic en Allenlace bajo Devicesy luego añadir un nuevo dispositivo.

entonces necesita establecer el nombre del dispositivo, y uuid, y luego guardarlo. Vaya a xcode y limpie el caché, la compilación y todo funciona bien.

Nota 1: asegúrese de que su equipo sea verdad.

Nota 2: puede obtener un uuid conectando el dispositivo a su dispositivo Mac, haga clic en iTunes y presione la etiqueta de seguridad, verá UUID.

Que esta respuesta también es útil.


0

Intenté todas las respuestas anteriores y no tuve suerte. Después de eso reinicio mi iPhone y el problema parece haber desaparecido. Sé que es tan estúpido pero funcionó. Las respuestas anteriores probablemente resuelvan el problema, pero si no, intente reiniciar su dispositivo iOS.


0

Asegúrese:

1) Tener un perfil de aprovisionamiento registrado para su dispositivo.

2) El dispositivo debe agregarse al perfil de Desarrollo y actualizarse.

Si aún tiene problemas, verifique la configuración de compilación de su objetivo.

Asegúrese:

1) CODE_SIGNING_REQUIREDen User-Definedse establece en YES.

ingrese la descripción de la imagen aquí

2) Las Signingopciones de verificación son correctas. Si el problema persiste, cambie a Configuración manual en lugar de automáticamente.


0

Mismo problema encontrado, hemos tenido varias configuraciones de proyecto de Xcode, digamos Vamos Debug-Staging, Debug-Production. Luego los unificamos y usamos solo una configuración Debug. Pero el anterior (ya no existe) estaba atascado en el esquema para la fase de ejecución, por lo que una vez que intentó ejecutar, Xcode le mostró este mensaje. Lo que tiene sentido ya que los perfiles de aprovisionamiento se configuran en configuraciones de compilación basadas en la configuración.

Así que el esquema de ejecución se veía así:

Esquema de destino incorrecto

Mientras que las configuraciones del proyecto se configuraron así.

Configuraciones del proyecto

Cambiar el esquema para usar la configuración que todavía está disponible en el proyecto es lo que solucionó este problema para mí.


0

Tuve el mismo problema (XCode 11) y nada funcionó lo que se escribió aquí.

Mi problema fue que tenía iOS Beta (13.3) en mi teléfono. Después de revertir que todo volvió a funcionar bien.


Idea: Tal vez el dispositivo también almacena información sobre el perfil de aprovisionamiento, por lo que un restablecimiento de fábrica del teléfono también podría solucionarlo.



0

Hice lo siguiente:

  1. Desconecté el dispositivo donde no se estaba instalando la aplicación
  2. Conectó un dispositivo diferente <Se instaló en este segundo dispositivo
  3. ¡Después de un tiempo conectó el primer dispositivo y funcionó!

Esto es muy extraño, pero funcionó para mí, podría funcionar para otros y ahorrar la frustración.


0

Finalmente, descubrí lo que está pasando ... casi me toma 2 horas

Mi caso es que la fecha de mi teléfono no es correcta. Olvidé que cambié la fecha de mi teléfono. Supongo que eso hace que todos mis perfiles de aprovisionamiento expiren ...

Entonces, si has probado todas esas respuestas pero nada funciona. Vaya a CONFIGURACIÓN, verifique la fecha de su teléfono.

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.