Korzystam z Xcode do tworzenia plików eksportu .ipa w celu przesłania do Apple. Robiłem to z powodzeniem przed aktualizacją z Xcode 10 do Xcode 11.
Niektóre z napotkanych błędów sugerowały, że musieliśmy całkowicie odinstalować Xcode, ponieważ wcześniej mieliśmy wersję beta, a prawdopodobnie stara wersja Xcode beta była przyczyną problemów. Postanowiłem po prostu wyczyścić cały komputer Mac za pomocą resetowania systemu, aby uniknąć kopiowania Xcode Beta lub jego ustawień na maszynie. Jest to więc zupełnie nowa instalacja systemu Mac OS. Ponownie zainstalowałem Xcode.
Zaimportowałem moje stare certyfikaty do pęku kluczy i zweryfikowałem, że mam tylko ważne certyfikaty na liście.
Wykonuję dwa polecenia. Najpierw tworzę archiwum. Następnie używam archiwum do eksportowania 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
Zauważ, że zastąpiłem schemat XXXX, a identyfikatory pakietów w moich przykładach zostały zastąpione przez „my.bundle.id”.
Ten proces działa, aby wykonać programistę .ipa. Jednak kiedy idę do tworzenia Testflight lub Production .ipa, dostaję błędy.
Pierwsze polecenie działa bez błędów i mam plik archiwum utworzony w „build-dev / XXX.archive”. Drugie polecenie generuje błędy:
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'.}
To jest mój plik 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>
Jestem w stanie budować z poziomu Xcode. To jest tylko eksport wiersza polecenia, który wydałem.
Identyfikator pakietu istnieje na moim koncie developer.apple.com. Posiadam ważny certyfikat iOS Development i iOS Distrobution w Preferencjach Xcode.
Nie jestem pewien, dlaczego dostaję te błędy.