Xcode 11 Błąd podczas eksportu IPA Nie znaleziono profili dla „my.bundle.id”

12

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.

Daryl
źródło

Odpowiedzi:

15

Hej, ja też miałem ten problem. Musiałem to naprawić, aby utworzyć plik archiwum i wyeksportować plik IPA dla TestFlight z xCode za pomocą GUI. Podczas tego procesu xCode mógł utworzyć brakujący certyfikat. Teraz mogę pomyślnie uruchamiać polecenia xCode z wiersza poleceń.

Kroki korzystania z interfejsu GUI do utworzenia wymaganego certyfikatu:

  • Otwórz Xcode
  • Wybierz produkt
  • Wybierz archiwum (jeśli archiwum jest szare, najpierw wykonaj kompilację dla ogólnego urządzenia iOS).
  • Wybierz opcję Dystrybucja aplikacji
  • Wybierz App Store Connect z listy przycisków opcji, a następnie kliknij Dalej.
  • Wybierz opcję Eksportuj z listy przycisków opcji, a następnie kliknij przycisk Dalej.
  • Sprawdź certyfikat Generuj Apple Distribution.
  • Wyeksportuj certyfikat jako kopię zapasową i udostępnij go innym programistom.

Poniżej znajduje się zrzut ekranu okna „Generuj certyfikat dystrybucji Apple”, który należy kliknąć w procesie GUI.

wprowadź opis zdjęcia tutaj

Austin
źródło
1
Dzięki, że rozwiązałem problem. Wymagało tego ode mnie dla każdej firmy, dla której budujemy. Właśnie sprawdziłem „generuj certyfikat” w GUI, tak jak wspomniałeś, i narzędzia wiersza poleceń działają teraz. Wygląda jak błąd w jabłku, ponieważ kiedy dodam flagę -allowProvisioningUpdates, nie aktualizuje ona automatycznie profili, certyfikatów itp.
Daryl
Napotkałem ten problem z przesyłaniem aplikacji natywnej do TestFilght. Ale już zainstalowałem .p12, dlaczego więc widzę ten ekran? Czy ktoś może pomóc?
Akshay Jadhav,