Xcode 11 Error al exportar IPA No se encontraron perfiles para 'my.bundle.id'

12

Estoy usando Xcode para construir archivos de exportación .ipa para enviarlos a Apple. Lo he estado haciendo con éxito antes de la actualización de Xcode 10 a Xcode 11.

Algunos de los errores que estábamos experimentando sugirieron que necesitábamos desinstalar completamente Xcode porque teníamos una versión beta previamente activada y la versión anterior de Xcode beta probablemente estaba causando los problemas. Decidí limpiar todo el Mac con un reinicio del sistema para evitar que cualquier copia de Xcode Beta o su configuración esté en la máquina. Por lo tanto, ahora es una instalación completamente nueva de Mac OS. He reinstalado Xcode.

Importé mis certificados antiguos en el llavero y verifiqué que solo tengo certificados válidos en la lista.

Ejecuto dos comandos. Primero creo un archivo. Luego uso el archivo para exportar el ipa:

xcodebuild -allowProvisioningUpdates -workspace my_app.xcworkspace -scheme XXXX -archivePath build-dev/XXXX.xcarchive archive
xcodebuild -exportArchive -archivePath build-dev/XXXX.xcarchive -exportOptionsPlist release.plist -exportPath build-dev

Tenga en cuenta que he reemplazado el esquema con XXXX y las ID de paquete en mis ejemplos se han reemplazado con 'my.bundle.id'.

Este proceso funciona para hacer un desarrollo .ipa. Sin embargo, cuando voy a crear un Testflight o Production .ipa obtengo errores.

El primer comando se ejecuta sin errores y tengo el archivo creado en "build-dev / XXX.archive". El segundo comando genera errores:

2019-09-30 12:11:46.444 xcodebuild[10674:326155] [MT] IDEDistribution: -[IDEDistributionLogging _createLoggingBundleAtPath:]: Created bundle at path '/var/folders/10/8g5xrhr56wz6sgttzh0_s8fr0000gn/T/XXXX_2019-09-30_12-11-46.444.xcdistributionlogs'.

2019-09-30 12:11:56.534 xcodebuild[10674:326208]  DVTAssertions: Warning in /Library/Caches/com.apple.xbs/Sources/IDEFrameworks/IDEFrameworks-14936/IDEFoundation/Provisioning/Logging/IDEProvisioningLedger.m:172

Details:  Unable to close provisioning ledger entry because not all of its subentries are closed
Object:   <IDEProvisioningLedgerEntry: 0x7ff7568b7a00>
Method:   -closeWithError:
Thread:   <NSThread: 0x7ff750b16af0>{number = 14, name = (null)}
Please file a bug at https://feedbackassistant.apple.com with this warning message and any useful information you can provide.
error: exportArchive: Create certificate

Error Domain=IDEProvisioningErrorDomain Code=19 "Create certificate" UserInfo={IDEDistributionIssueSeverity=3, IDEProvisioningError_UserInfoKey_IDEProvisioningUserAction=<IDEProvisioningCreateTeamOwnedCertificateUserAction: 0x7ff756acf0c0>, NSLocalizedRecoverySuggestion=Create a new Apple Distribution certificate for your team., NSLocalizedDescription=Create certificate}

error: exportArchive: No profiles for 'my.bundle.id' were found

Error Domain=IDEProfileLocatorErrorDomain Code=1 "No profiles for 'my.bundle.id' were found" UserInfo={IDEDistributionIssueSeverity=3, NSLocalizedDescription=No profiles for 'my.bundle.id' were found, NSLocalizedRecoverySuggestion=Xcode couldn't find any iOS App Store provisioning profiles matching 'my.bundle.id'.}

Este es mi archivo release.plist.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>method</key>
    <string>app-store</string>
    <key>teamID</key>
    <string>MY-TEAM-ID</string>
    <key>compileBitcode</key>
    <false/>
</dict>
</plist>

Puedo construir desde Xcode con éxito. Es solo la exportación de línea de comandos con la que estoy emitiendo.

El ID del paquete existe en mi cuenta developer.apple.com. Tengo un certificado válido de iOS Development y iOS Distrobution en Xcode Preferences.

No estoy seguro de por qué recibo estos errores.

Daryl
fuente

Respuestas:

15

Oye, yo también tuve este problema. Lo que tuve que hacer para solucionar esto fue crear el archivo comprimido y exportar un archivo IPA para TestFlight desde xCode usando la GUI. Durante ese proceso, xCode pudo crear el certificado que faltaba. Ahora puedo ejecutar los comandos xCode de la línea de comandos con éxito.

Pasos para usar la GUI para crear el Certificado necesario:

  • Abrir Xcode
  • Seleccionar producto
  • Seleccione Archivo (si el archivo es gris, primero haga una compilación para el dispositivo genérico iOS).
  • Seleccione Distribuir aplicación
  • Seleccione App Store Connect de la lista de botones de radio y luego haga clic en Siguiente.
  • Seleccione Exportar de la lista de botones de radio y luego haga clic en Siguiente.
  • Marque la casilla Generar un certificado de distribución de Apple.
  • Exporte el certificado como copia de seguridad y comparta con otros desarrolladores.

A continuación se muestra una captura de pantalla de la ventana "Generar un certificado de distribución de Apple" en la que se debe hacer clic en el proceso de la GUI.

ingrese la descripción de la imagen aquí

Austin
fuente
1
Gracias que resolvió el problema. Me exigió hacer esto para cada empresa para la que construimos. Acabo de marcar el "generar certificado" en la GUI como mencionaste y las herramientas de línea de comando funcionan ahora. Parece un error en Apple porque cuando agrego el indicador -allowProvisioningUpdates, no actualiza automáticamente los perfiles, certs, etc.
Daryl
Encontré este problema al cargar aplicaciones nativas en TestFilght. Pero ya instalé mi .p12, ¿por qué veo esta pantalla? ¿Alguien puede ayudar?
Akshay Jadhav