Xcode „Klucz prywatny dla nie jest zainstalowany na tym Macu - dystrybucja”

99

Zawsze otrzymuję ten komunikat, gdy próbuję przesłać moją aplikację do sklepu z aplikacjami.

Oto zdjęcie wiadomości:

obrazek

Byłoby wspaniale, gdyby ktoś pomógł mi rozwiązać ten problem, abym mógł przesłać moją aplikację do sklepu.

Fabian Boulegue
źródło

Odpowiedzi:

90

Spróbuj wykonać następujące kroki:

  1. Unieważnij swój istniejący certyfikat dystrybucji systemu iOS z witryny internetowej programisty iOS.
  2. Wygeneruj nowy certyfikat dystrybucji iOS, przechodząc do Preferencje XCode-> Konta-> Wyświetl szczegóły, a następnie klikając + pod listą tożsamości podpisujących.
  3. Wróć do witryny programisty i upewnij się, że wszystkie profile obsługi administracyjnej są skonfigurowane przy użyciu nowego certyfikatu. (Po zakończeniu wszystkie powinny być wymienione jako Aktywne).
  4. Wróć do XCode i odśwież listę profili aprowizacji.

Miałem ten sam problem co ty i to rozwiązało go dobrze.

Ben Visness
źródło
Dziękuję, Twoje rozwiązanie ratuje mi dzień (przeklinałem Apple od 4 godzin).
JJ86,
Mam ten sam problem i opisane powyżej kroki rozwiązują go, ale teraz napotykam inny podczas sprawdzania poprawności aplikacji „pakiet jest nieprawidłowy nowe aplikacje i aktualizacje przesłane do sklepu z aplikacjami muszą być publiczne” Czy ktoś może pomóc w sprawie to?
Maystro
Wiele osób już zadało to pytanie: stackoverflow.com/…
Ben Visness
@Fabian Boulegue Myślę, że głosy wskazują, że to najlepsza odpowiedź. Gdybyś mógł to oznaczyć jako zaakceptowane, byłoby wspaniale :)
Ben Visness
Powinno to być oznaczone jako odpowiedź. to działa jak urok
batgun
50

To rozwiązało to dla mnie bez rozpoczynania wszystkiego od zera:
1. Otwórz dostęp do pęku kluczy na komputerze, który był używany do wygenerowania kluczy prywatnych
2. Wybierz Breloki-> Logowanie i kategoria-> Certyfikaty po lewej stronie
3. Zlokalizuj dwa certyfikaty iPhone Developer: [Twoja nazwa programisty] i iPhone Distribution: [Twoja nazwa programisty]
4. Wybierz oba, kliknij prawym przyciskiem myszy i wybierz Eksportuj 2 elementy ...
5. Wprowadź wybrane hasło, zapisz na dysku i pobierz plik .p12 -plik na inny komputer, który nie podpisze
6. Otwórz plik, wprowadź hasło i wszystko powinno być gotowe.

kentrh
źródło
8
Co się stanie, jeśli nie mam już dostępu do maszyny, która wygenerowała klucze prywatne?
aaronsnoswell
2
@aaronsnoswell Musisz wygenerować nowe klucze do maszyny, nad którą aktualnie pracujesz
Nik
Następnie musisz wygenerować nowy.
HelloWorld
Po zaimportowaniu klucza prywatnego do mojego pęku kluczy nadal nie działał. Jednak prosty restart sprawił, że zadziałało ...;)
fredpi
7. Uruchom ponownie komputer. Wygląda na to, że nie zobaczył nowego klucza prywatnego w pęku kluczy, chyba że uruchomię ponownie. Zakładam, że to dlatego, że dodajesz go do pęku kluczy logowania, który musi zostać załadowany podczas logowania?
TenaciousJay
15

Mając podobny problem, po kilku dniach testowania, sprawdzania, próby naprawy itd., Zadziałało po prostu:

  1. Otwórz preferencje Xcode (panel Konta)
  2. Kliknij „Zarządzaj certyfikatami”.
  3. Dodaj nowy certyfikat.

Potem wszystko znów zaczęło działać.

wprowadź opis obrazu tutaj

Replika
źródło
12

Ja też tego doświadczyłem i walczyłem z tym procesem przez 4 godziny. w końcu zrobiłem co następuje

  1. Usunięto wszystkie klucze prywatne i publiczne oraz certyfikaty z mojego dostępu do pęku kluczy
  2. Usunięto wszystkie profile obsługi administracyjnej
  3. Usunięto wszystkie AppID - (prawdopodobnie nie musiałem tego robić, ponieważ chciałem mieć czystą kartę)
  4. Usunąłem moje certyfikaty w witrynie Developer.Apple
  5. Utworzono nowy profil rozwoju Wildcard
  6. Utworzono nowy profil SPECIFIC do wdrażanej aplikacji (więc w AppID zamiast * miała nazwę aplikacji)
  7. Utworzono nowy Certyfikat rozwoju ze strony internetowej.
  8. Pobrałem certyfikat pośredni (Worldwide Developer Relations Certificate Authority), ponieważ wyczyściłem go również z mojego pęku kluczy
  9. Utworzono żądanie podpisania certyfikatu (CSR) i postępowałem zgodnie z instrukcjami zawartymi w liście, aby dodać go do mojego dostępu do pęku kluczy. i przesłał CSR.
  10. Po dodaniu certyfikatu upewniłem się, że zmieniłem nazwy kluczy publicznych i prywatnych oraz dodałem komentarze do pola informacyjnego - abym mógł sobie przypomnieć, co zrobiłem.
  11. Utworzono nowy certyfikat dystrybucyjny, powtarzając kroki 7, 9, 10 dla dystrybucji, abym mógł go pobrać do App Store.

Mam nadzieję, że pomaga to komuś wiedzieć, że można wszystko wymazać i zacząć od nowa. Załadowałem wszystkie certyfikaty na starego Macbooka Pro, który zaczął się łuszczyć w zeszłym tygodniu. Więc w zeszłym tygodniu dostałem nowego Maca Air, ale nie pamiętam, jakich kluczy, i na pewno nie pamiętałem, że miałem 2 zestawy prywatnych i publicznych na potrzeby rozwoju i 1 do dystrybucji. (Jeśli masz więcej niż 1 dystrybucję, myślę, że miałbyś dodatkowe zestawy).

Steve

SESPROUL
źródło
Pamiętam, jak pomyślnie przechodziłem przez to w XCode 4. Czy wiesz, jak usunąć wszystkie profile obsługi administracyjnej (krok 2) w XCode 5?
Danny
1
Zanim ktokolwiek przejdzie przez „usuń” kroki 1-4, wskazane byłoby wyeksportowanie certyfikatu przez KeychainAccess, jak opisano w jednym z poniższych komentarzy, a następnie zaimportowanie go na komputer docelowy.
andrewz
4
Co za rozwiązanie. Czy powinienem też kupić nowy laptop?
Breakline
5

Wpadłem na ten sam problem i przeklinając Apple, zdałem sobie sprawę, że to moja wina.

1.- Go to developer.apple.com / Certificates / Production
2.- Download your certificate

To zadziałało, dziękuję po wypróbowaniu innych odpowiedzi.

Alex Nolasco
źródło
pobrał certyfikat i dodał go do dostępu do pęku kluczy. Ale nie działa.
famfamfam
4

Warto sprawdzić w Dostępie do pęku kluczy, aby upewnić się, że nie masz wielu kluczy o tej samej nazwie. Ponadto bardzo często, gdy napotykam problemy z podpisywaniem kodu, najszybszym rozwiązaniem było rozpoczęcie procesu od nowa (utworzenie nowych par kluczy, certyfikatów i profili udostępniania).

Powodzenia!

Fluffhead
źródło
4

Przejdź do Preferencje -> Konta -> Wybierz używany Apple ID -> kliknij przycisk „Wyświetl szczegóły…” -> kliknij przycisk plus i wybierz przycisk „Dystrybucja iOS”. Więcej szczegółów tutaj .

Thomas W.
źródło
3

Wygląda na to, że udało Ci się wygenerować certyfikat dystrybucyjny, więc w pewnym momencie musiałeś wygenerować parę kluczy. Tworzysz na wielu maszynach? Wyeksportuj profil programisty z komputera, na którym go jest, i zaimportuj go do tego komputera.

Jim
źródło
Uważam, że można go również pobrać z dow. portal
El Guapo
Cóż, normalnie po prostu programuję z tego komputera ... cóż, mam też certyfikat programisty i dystrybutora, może to coś innego? Tak jak tutaj jest zrzut ekranu mojego profilu ... dl.dropbox.com/u/659484/pic%202.png
Fabian Boulegue
6
Nie, nie możesz pobrać klucza prywatnego z portalu obsługi administracyjnej. To prywatne. Nie dajesz tego Apple.
Jim
2
Certyfikat to plik dostarczony przez Apple z napisem „Tak, ten klucz prywatny jest zatwierdzony przez Apple”. Sam klucz jest oddzielny. Nie masz klucza na tym komputerze, w przeciwnym razie obok niego byłaby strzałka ujawnienia. Musiałeś mieć ten klucz w pewnym momencie, aby certyfikat istniał. Jeśli nie używasz innych komputerów i nie masz go zainstalowanego na innym koncie na swoim komputerze, musisz go usunąć.
Jim
2
Jeśli nie masz klucza prywatnego i nie możesz go przywrócić z kopii zapasowej, będziesz musiał wygenerować nową parę kluczy, wygenerować dla niej CSR, przesłać CSR do Apple, pobrać nowy certyfikat wygenerowany przez Apple w odpowiedzi , utwórz nowy dystrybucyjny profil informacyjny i użyj tego profilu do zbudowania aplikacji. Zasadniczo postępuj zgodnie z instrukcjami konfiguracji, które Apple podał na początku.
Jim
2

To proste, zaloguj się na konto użytkownika (może na innym komputerze Mac), które zostało użyte do utworzenia certyfikatu dystrybucyjnego. Otwórz dostęp do pęku kluczy i wyeksportuj ich klucz prywatny. Następnie zainstaluj go w swoim pęku kluczy.

Atul Manwar
źródło
2

Mój problem polegał na tym, że Xcode nie było na liście kontroli dostępu dla klucza prywatnego. Możesz to naprawić w dostępie do pęku kluczy bez generowania nowej pary kluczy.

Otwórz dostęp do pęku kluczy. Po lewej stronie wybierz login i Moje certyfikaty. Wybierz certyfikat dystrybucyjny i kliknij dwukrotnie swój klucz prywatny. Wybierz kontrolę dostępu i dodaj Xcode do listy, jeśli jej tam nie ma.

Uruchom ponownie Xcode i utwórz nowe archiwum. Powinien teraz znaleźć klucz prywatny.

zprag
źródło
1

Właściwie właśnie zamknąłem i ponownie otworzyłem xCode, a potem wszystko wróciło do normy.

Ser Pounce
źródło
0

Mam rozwiązanie:

Twoja firma ma plik Company (Enterprise Distribution) .pem i CompanyEnterpriseDistribution.p12, które również musisz zainstalować.

Sam
źródło
0

Mam konto firmowe w Apple. Rozwiązałem problem poprzez:

1) na stronie dewelopera Certyfikaty, identyfikatory i profile
2) w sekcji Profile aprowizacji -> rozwój
3) przeszedłem do mojego rozwoju Provisioning -> edycja
4) następnie pobierz i kliknij dwukrotnie.

TtheTank
źródło
0

Spróbuj tego..

  • W „Preferencjach systemowych” wybierz „Bezpieczeństwo i prywatność”.

  • Kliknij ikonę „Zablokuj” w lewym dolnym rogu.

  • Zmień opcję „Zezwalaj na pobieranie aplikacji z” z „Gdziekolwiek” na „Mac App Store i zidentyfikowani programiści”.

-Następnie spróbuj zbudować.

hmdeep
źródło
0

Dla tych, którzy próbują zaktualizować aplikację po pewnym czasie, musisz odnowić swój profil Porvisioning w Apple Development Center, a następnie po prostu przejść do Certyfikatów po lewej stronie w Apple Development Center, pobrać certyfikat dystrybucyjny i otworzyć go .

Xcode zrobi resztę i pozwoli Ci uruchomić aplikację.

Twoje zdrowie!

V1 Technologies
źródło
0

Dla mnie oznacza to, że nie zainstalowałem certyfikatu produkcji. (Mam już zainstalowany certyfikat programistyczny, który)

Po pobraniu certyfikatu produkcyjnego i zainstalowaniu go w breloczku zadziałało.

Sahan Maldeniya
źródło
0

To rozwiązało to dla mnie bez zaczynania od zera:

  1. reGenerate plik „CertificateSigningRequest.certSigningRequest” z innego Macbooka.
  2. reGenerate Certificates „ * Grid Information Technology Co., Ltd”
  3. reGenerate Provisioning Profiles
tinkl
źródło
0

Tworzę i rozpowszechniam oprogramowanie IPA dla mojej aplikacji w wersji beta na iOS. Wielokrotnie musiałem dodawać nowe urządzenia do listy dozwolonych i miałem wiele nieszczęść spowodowanych tym. Tym razem dokumentuję i udostępniam taki problem i rozwiązanie ...

Dodałem nowy udid do mojej listy w centrum deweloperskim, utworzyłem archiwum i stwierdziłem, że w profilu osadzonym w ipa nie znaleziono adresu IP. Odświeżyłem więc moje profile obsługi administracyjnej w XCode (aby uzyskać zaktualizowaną listę) i ten błąd został spowodowany brakiem klucza prywatnego (jak pokazano na początku tego wątku).

Nie mogłem wtedy zbudować kolejnego archiwum. Ponadto spowodowało to powstanie błędów podpisywania kodu podczas próby skompilowania projektu.

Po wielu bólach naprawiłem to w ten sposób:

W XCode przejdź do Preferencje ... Zakładka Konto. Kliknij przycisk dodawania (środkowy lewy) i wybierz „iOS Development”. Spowoduje to utworzenie nowej tożsamości podpisującej.

Powinieneś teraz móc użyć nowego profilu informacyjnego do utworzenia archiwum.

Należy również naprawić błędy kompilacji. Wróć do projektu na karcie „Ogólne”, wybierz „zespół” i ponów próbę kompilacji. Mogą pojawić się dodatkowe okna dialogowe uprawnień. Po wyświetleniu monitu kliknij „napraw” lub „zawsze zezwalaj”.

Uwaga: lista Member Center i Key Chain stanie się bałaganem, z duplikatami do podpisywania identyfikatorów, ale przynajmniej wszystko działa. Możesz spróbować go wyczyścić ...

BuvinJ
źródło
0

Utworzyłem nowy certyfikat dystrybucyjny, po czym zmodyfikowałem istniejący profil informacyjny, aby wskazywał na ten nowy certyfikat, a następnie w Xcode> preferencje> konto> wyświetl szczegóły zaktualizowałem certyfikaty podpisu.

działał jak urok

ajbraus
źródło
0

Mam inną odpowiedź (oprócz mojego poprzedniego postu). Dzisiaj mój klucz prywatny wygasł (jak odkryłem, patrząc na KeyChain Access), a na liście był nowy. W jaki sposób? Idk ... Może za pomocą przycisku „napraw problem” XCode zostałem przedstawiony, czy też przez pobranie aktualizacji profili aprowizacji, jak opisałem w moim innym poście, automatycznie utworzono nowy? ...

W każdym razie zalogowałem się w centrum rozwoju, znalazłem profil obsługi administracyjnej, którego chciałem użyć i kliknąłem „edytuj”. Mogłem wtedy wybrać „Certyfikaty”. Okazało się, że ten poszukiwany nie został wybrany. Wybrałem go i kliknąłem „generuj”, aby odtworzyć profil informacyjny. Wtedy udało mi się go pobrać. Przeciągnąłem i upuściłem plik na ikonę stacji dokującej XCode. To naprawiło!

BuvinJ
źródło
-2

stanie się tak, ponieważ sformatowałeś Maca i ponownie go zainstalowałeś lub tworzysz z nowego Maca.

jeśli nie możesz zrobić powyższego i wyeksportować stary certyfikat i profile ze starego komputera Mac

Będziesz musiał usunąć profile prowizyjne z dziką kartą z centrum programistów Apple, a także z certyfikatów musisz usunąć stare tylko ogólne certyfikaty rozwoju i produkcji.

wtedy będziesz musiał utworzyć nowe i utworzyć nowe profile obsługi administracyjnej dla aplikacji, którą musisz przesłać do Apple.

nie musisz na razie usuwać wszystkich profili provisiong, ale na pewno będziesz musiał stworzyć nowe dla aplikacji, których dla nich nie tworzysz.

albaiti
źródło