Certyfikat dystrybucyjny / klucz prywatny nie został zainstalowany

104

Używając Xcode 9.1, po utworzeniu aplikacji na iOS chcę ją zarchiwizować i przesłać do AppStore w celu przetestowania wersji beta. Ale pojawia się następujący problem po kliknięciu przycisku Upload to the App Store...i wybraniu Automatically manage signing:

„My Name” ma jeden certyfikat dystrybucji iOS, ale jego klucz prywatny nie jest zainstalowany.

Nie wiem, dlaczego ten „klucz prywatny nie jest zainstalowany”, ale certyfikat dystrybucyjny mógł zostać utworzony na innym komputerze lub w czymś takim. W każdym przypadku:

Jaki jest najprostszy sposób na odzyskanie brakującego klucza prywatnego i zainstalowanie go? Aby wszystko działało.

Michel
źródło

Odpowiedzi:

83

Możesz mieć tylko jeden certyfikat dystrybucyjny. Łączy klucz publiczny, znany firmie Apple, z kluczem prywatnym, który znajduje się w pęku kluczy jakiegoś komputera. Jeśli ten certyfikat dystrybucyjny został utworzony na innym komputerze, klucz prywatny znajduje się w pęku kluczy tego komputera. A ten certyfikat dystrybucyjny nie działa bez niego.

Aby więc użyć tego certyfikatu dystrybucyjnego na tym komputerze, musisz znaleźć ten komputer, otworzyć Dostęp do pęku kluczy, zlokalizować i wyeksportować klucz prywatny, wysłać go pocztą lub w inny sposób pobrać na ten komputer i zaimportować go do pęku kluczy tego komputera.

Jeśli przejdziesz do panelu Konta wstępne w Xcode i dwukrotnie klikniesz swój zespół, zobaczysz okno dialogowe, które pomoże Ci w tym. Jeśli zobaczysz swój certyfikat dystrybucyjny i jest napisane Nie w pęku kluczy, możesz kliknąć ten certyfikat z naciśniętym klawiszem Control, aby uzyskać element menu, który pozwoli Ci wysłać e-mail do osoby, która utworzyła certyfikat, i poprosić o przesłanie go do Ciebie. Ta osoba może użyć tego samego importu, aby wybrać eksport certyfikatu i może wysłać Ci wyeksportowany certyfikat e-mailem.

Tak czy inaczej, klucz prywatny lub wyeksportowany certyfikat zostaną zabezpieczone hasłem. Aby go użyć, musisz znać hasło.

matowe
źródło
1
Moja pierwsza próba po twojej sugestii nie zadziałała. Najprawdopodobniej dlatego, że nie zrobiłem tego dobrze. Jedno pytanie, które mam, dotyczy dostępu do pęku kluczy, gdzie utworzono certyfikat. Jak znaleźć klucz prywatny? Wygląda na to, że dostęp do pęku kluczy pokazuje w niektórych miejscach zyliony obiektów o tej samej nazwie. Więc wcale nie jestem pewien, czy wykonałem tę część tak, jak powinienem.
Michel
34
Cóż, wysłanie maila do siebie z pytaniem, które teraz zadaję, prawdopodobnie nie będzie skuteczne :)
Michel
1
Ale nadal uważam, że twoja odpowiedź postawiła mnie na właściwej drodze, więc muszę się trochę bardziej zagłębić.
Michel
W końcu udało mi się obejść ten problem. Ale niestety nie skończyłem z całą sprawą podpisywania. Zrobiłem inny post z osobnym pytaniem: stackoverflow.com/questions/47258499/…
Michel
Dzięki za to @matt! W moim przypadku utworzyłem certyfikat dystrybucji iOS przy użyciu CSR, który utworzyłem na swoim urządzeniu, ale kiedy zainstalowałem go w pęku kluczy, nie ma klucza prywatnego powiązanego z certyfikatem. Mogę skompilować, ale nie wiem, gdzie jest klucz prywatny, więc nie mogłem przekazać pliku p12 moim kolegom z drużyny. Chociaż inny przypadek, dzięki twojej radzie dotyczącej przejścia do panelu Konta Xcode, udało mi się wyeksportować go na p12. :) Teraz wszystko jest w porządku, ale po prostu zastanawiam się, gdzie do cholery jest ten klucz prywatny, którego nie widać razem z certyfikatem w pęku kluczy.
KarenAnne
292

Aktualna (lipiec 2020 r.) (Xcode 10-12)

  1. przejdź do Xcode - Preferencje - Konta - Zarządzaj certyfikatami
  2. +Następnie kliknij w lewym dolnym roguApple development
  3. Poczekaj chwilę, a następnie kliknij Done

To wszystko. Możesz również cofnąć stary certyfikat na developer.apple.com .

Stara odpowiedź

Krok 1: - xcode -> produkt -> archiwa -> Kliknij zarządzaj certyfikatem wprowadź opis obrazu tutaj

Krok 2: - dodaj dystrybucję ios wprowadź opis obrazu tutaj

Tanjima Kothiya
źródło
7
To nie działa, ponieważ po kliknięciu znaku plus nic się nie dzieje. Nie mam opcji „Dystrybucja iOS”.
arnoldbird
2
Jeśli uzyskam dostęp do Zarządzaj certyfikatami za pośrednictwem Xcode> Preferencje> Konta, znak plus jest aktywny, jak pokazano w kroku 2 powyżej.
arnoldbird
12
To byłaby najlepsza odpowiedź
kishorekumaru
2
Wow :-D. Naprawiłem to dla mnie. Albo to nie powinno być możliwe, albo Xcode nie powinno ci tego przeszkadzać.
Joshua R.
3
Obecnie w Xcode 10.3 Xcode - Preferencje - Konta - Zarządzaj certyfikatami
Anton
27

Ta odpowiedź jest dla zespołu „One Man”, aby szybko rozwiązać ten problem bez czytania zbyt wielu informacji o „Team”

Krok 1) Przejdź do przeglądarki internetowej, otwórz swoje konto programisty. Przejdź do Certyfikaty, identyfikatory i profile. Wybierz Certyfikaty / Produkcja. Zobaczysz tam certyfikat, dla którego brakowało klucza prywatnego. Kliknij Odwołaj. I postępuj zgodnie z instrukcjami, aby usunąć ten certyfikat. wprowadź opis obrazu tutaj Krok 2) To wszystko! Wróć do Xcode, aby zweryfikować aplikację. Poprosi Cię teraz o wygenerowanie nowego certyfikatu. Teraz z radością przesyłasz swoje aplikacje.

Paweł
źródło
11

EDYCJA: Myślałem, że drugi komputer jest martwy, więc poprawiam odpowiedź:

Powinieneś wyeksportować certyfikat z pierwszego komputera z jego kluczem prywatnym i zaimportować go na nowy komputer.

Wolę sposób iCloud, tworzenie kopii zapasowych na iCloud i pobieranie na nowym komputerze.

Jeśli z jakiegoś powodu nie możesz tego zrobić, możesz odwołać certyfikat w witrynie programistów Apple, a następnie pozwolić Xcode na utworzenie nowego dla Ciebie, utworzy również nowy nowy klucz prywatny i zapisze go w Twoim pęku kluczy, po prostu pamiętaj, aby wykonać kopię zapasową w preferowany sposób

Icchak
źródło
2
To okropna rada.
mat.
4
Wg mojej wiedzy z unieważnieniem certyfikatu nic złego się nie dzieje .. Czy wiesz coś jeszcze?
Yitzchak
Tak; może wyeksportować klucz prywatny z komputera 1 do komputera 2. To, co radzisz, spowoduje, że certyfikat dystrybucyjny przestanie działać na innym komputerze! Dlaczego jest to dobre?
mat
2
Myślałem, że drugi komputer jest martwy
Icchak
7

Dodaj nowy Certyfikat produkcji tutaj , a następnie pobrać plik cer i kliknij go dwukrotnie, aby dodać go do pęku kluczy.

Teraz wszystko będzie dobrze, nie zapomnij ponownie uruchomić Xcode !!!

fujianjin6471
źródło
1
u mnie błąd nadal wyskakiwał, musiałem kliknąć na plusa żeby się zaktualizował i działał
Zack
7

unieważnij wszystkie certyfikaty dystrybucyjne dla developer.apple.com i zweryfikuj swoją aplikację w Xcode. Po wyeksportowaniu klucza do dalszego użytku pojawi się opcja utworzenia nowego certyfikatu dystrybucyjnego.

Ta praca dla mnie.

Sohaib Siddique
źródło
5

Odpowiedzi ludzi na temat posiadania klucza z komputera są tutaj dokładne. Ale jeśli coś nadal nie działa, spróbuj ponownie uruchomić Xcode po zainstalowaniu certyfikatu

MobileMon
źródło
4

Tylko dla każdego, kto przez to przechodzi, powyższe odpowiedzi są poprawne, ale nadal mogą być nieco mylące, zwłaszcza jeśli masz wiele certyfikatów. Oto kroki, które podjąłem:

1) Najpierw zanotuj datę w faktycznym certyfikacie dystrybucyjnym, w którym brakuje klucza prywatnego. Następnie przejdź do aplikacji pęku kluczy na drugim komputerze i wpisz IOS w pasku wyszukiwania. Wyświetli wszystkie klucze programisty i dystrybucyjne IOS, więc musisz znaleźć właściwy.

2) Kliknij strzałkę w prawo przy każdym wpisie dystrybucji IOS, aby wyświetlić certyfikat i znaleźć certyfikat z poprawną datą i wyeksportować go, klikając prawym przyciskiem myszy i wybierając opcję eksportu.

3) Następnie po prostu zaimportuj go do pęku kluczy nowego komputera i przynajmniej z XCode 9.3 natychmiast go rozpozna i poprawi błąd, dzięki czemu możesz teraz przesłać swoje osiągnięcie.

Sam
źródło
Dzięki! Dodam, że w domyślnym widoku nie widać strzałki w lewo, która pozwala rozwinąć klawisz, aby odsłonić certyfikat. Musisz wybrać Klucze w panelu kategorii. Dopiero wtedy możesz wybrać certyfikat i go wyeksportować. Jeśli zamiast tego wyeksportujesz klucz prywatny, podczas importowania go na inny komputer pojawi się błąd.
Clafou,
4

Jeśli używasz certyfikatu na nowym komputerze, czy nie. Najłatwiej byłoby cofnąć poprzedni certyfikat dotyczący projektu. Następnie prześlij ponownie do sklepu. Xcode wygeneruje nowy.

Chinedu Etoh
źródło
2

W moim przypadku Xcode nie uzyskiwał dostępu do certyfikatów z pęku kluczy, wykonałem następujące kroki:

  1. usuń certyfikaty z pęku kluczy.
  2. uruchom ponownie mac.
  3. generować nowe certyfikaty.
  4. zainstaluj nowe certyfikaty.
  5. czysty folder kompilacji.
  6. budować projekt.
  7. ponownie wyczyść folder kompilacji.
  8. zarchiwizuj teraz. To działa. To wszystko.
M. Mubeen Asif
źródło