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.