J'utilise Xcode pour créer des fichiers d'exportation .ipa à soumettre à Apple. Je l'ai fait avec succès avant la mise à niveau de Xcode 10 vers Xcode 11.
Certaines des erreurs que nous avons rencontrées suggéraient que nous devions désinstaller complètement Xcode, car nous avions une version bêta précédemment et l'ancienne version de Xcode bêta était probablement à l'origine des problèmes. J'ai décidé de simplement nettoyer l'intégralité du Mac avec une réinitialisation du système pour éviter toute copie de Xcode Beta ou de ses paramètres sur la machine. Il s'agit donc maintenant d'une toute nouvelle installation de Mac OS. J'ai réinstallé Xcode.
J'ai importé mes anciens certificats dans le trousseau et vérifié que seuls les certificats valides sont répertoriés.
J'exécute deux commandes. Je crée d'abord une archive. Ensuite, j'utilise l'archive pour exporter 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
Notez que j'ai remplacé le schéma par XXXX et que les ID de bundle dans mes exemples ont été remplacés par «my.bundle.id».
Ce processus fonctionne pour faire un développement .ipa. Cependant, lorsque je vais créer un testflight ou un .ipa de production, j'obtiens des erreurs.
La première commande s'exécute sans erreur et j'ai le fichier d'archive créé dans "build-dev / XXX.archive". La deuxième commande génère des erreurs:
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'.}
Ceci est mon fichier 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>
Je peux construire avec succès depuis Xcode. Ce n'est que l'exportation en ligne de commande avec laquelle j'ai émis.
L'identifiant du bundle existe sur mon compte developer.apple.com. J'ai un certificat iOS Development et iOS Distrobution valide dans les préférences Xcode.
Je ne sais pas pourquoi j'obtiens ces erreurs.