Sto usando Xcode per creare file di esportazione .ipa da inviare ad Apple. L'ho fatto con successo prima dell'aggiornamento da Xcode 10 a Xcode 11.
Alcuni degli errori che abbiamo riscontrato suggerivano la necessità di disinstallare completamente Xcode perché in precedenza avevamo una versione beta e la vecchia versione di Xcode beta stava probabilmente causando i problemi. Ho deciso di pulire l'intero Mac con un ripristino del sistema per evitare che qualsiasi copia di Xcode Beta o delle sue impostazioni si trovasse sulla macchina. Quindi ora è un'installazione completamente nuova di Mac OS. Ho reinstallato Xcode.
Ho importato i miei vecchi certificati nel Portachiavi e verificato che ho elencato solo i certificati validi.
Eseguo due comandi. Per prima cosa creo un archivio. Quindi uso l'archivio per esportare l'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
Nota che ho sostituito lo schema con XXXX e gli ID bundle nei miei esempi sono stati sostituiti con "my.bundle.id".
Questo processo funziona per fare uno sviluppo .ipa. Tuttavia, quando vado a creare un Testflight o Production .ipa ottengo errori.
Il primo comando viene eseguito senza errori e ho il file di archivio creato in "build-dev / XXX.archive". Il secondo comando genera errori:
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'.}
Questo è il mio file 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>
Sono in grado di costruire con successo da Xcode. È solo l'esportazione da riga di comando che sto emettendo.
L'ID bundle esiste sul mio account developer.apple.com. Ho un certificato di sviluppo iOS e Distrobution iOS nelle preferenze di Xcode.
Non sono sicuro del motivo per cui sto ricevendo questi errori.
