Xcode 4 - ponownie instaluje certyfikaty pęku kluczy, które usunąłem


85

Otrzymuję ten błąd:

Błąd CodeSign: tożsamość certyfikatu „iPhone Developer: XXX” pojawia się więcej niż raz w pęku kluczy. Narzędzie Codesign wymaga tylko jednego.

Na początku jednak nie martw się, po prostu przejdę do pęku kluczy i usunę zduplikowany (starszy), co zrobiłem. Wróciłem, zamknąłem Xcode, ponownie otworzyłem Xcode i projekt, ten sam błąd. wtf pomyślałem sobie. Wracam do pęku kluczy, a pewnik znowu tam jest. Usuwam oba certyfikaty, powtarzam i zauważam, że podczas wczytywania projektu dwa usunięte certyfikaty pojawiają się z powrotem w pęku kluczy.

Po długich poszukiwaniach upewniłem się, że nie mam w systemie pęku kluczy, czego nie miałem. Zrobiłem także czyszczenie i odbudowę. Kiedy miałem duplikaty z Xcode 3, mogłem po prostu wyczyścić duplikat pęku kluczy i byłem dobry. Ale w przypadku Xcode 4 dosłownie po prostu ponownie je w jakiś sposób instaluje, gdy otwieram projekt. Usunąłem nawet wszystkie pliki .cer w moim systemie, z których mógł je pobierać.

Jakieś sugestie?


1
Twoje zdrowie. Miałem ten sam problem. :)
RedBlueThing

Mam ten sam problem. Dzieje się tak, ponieważ Keychain nie usuwa poprawnie certyfikatu i masz sytuację, w której pojawiają się 2 certyfikaty (ale jeden jest nieważny). Po prostu usuń nieprawidłową aplikację Keychain i to będzie działać dobrze. Ale to rozwiązanie tymczasowe. :(
Sergey Kopanev

Odpowiedzi:


103

Rozwiązaniem było wejście do organizatora - w ramach biblioteki - profile zaopatrzeniowe, usunięcie ich wszystkich, a następnie ponowne zainstalowanie wszystkich, których nadal potrzebowałem.


Tak! Mogę potwierdzić, że to działa. Mimo że wciąż usuwałem ten z pęku kluczy, pojawiał się on ponownie. Po usunięciu starych profili obsługi administracyjnej z Organizatora wszystko było normalne. Dzięki! :)
RoLYroLLs

1
U mnie też działa! Dzięki! Myślę, że to, co próbuje zrobić XCode4, to wstawić certyfikaty deweloperskie do pęku kluczy dla profili Prov, którym ich brakuje, nawet jeśli certyfikaty deweloperskie wygasły.
iphone007

5
Pamiętaj również, aby ponownie wygenerować swój profil aprowizacji, jeśli odnowiłeś certyfikat programisty. Nie zrobiłem tego i kiedy ponownie dodałem stary profil Prov, powiązany z nim wygasły certyfikat programisty został ponownie włożony do pęku kluczy, D'oh!
iphone007

Uważaj, w jakiś sposób usunąłem swój pęk kluczy logowania, próbując usunąć profile. Nie jestem pewien, jak to się stało, ponieważ jestem prawie pewien, że obszar listy pęków kluczy był fokusem, gdy kliknąłem Usuń. Utwórz kopię zapasową przed usunięciem i bądź ostrożny.
avance

Jest to pomocne, ale jak powiedzieli inni, w rzeczywistości musisz przejść do pęku kluczy i usunąć wygasły certyfikat programisty, a nie tylko profil informacyjny.
Ron Srebro,

33

Miałem ten sam problem, a powyższe rozwiązania nie rozwiązały mojego problemu (no prawie).

Miałem ten sam zduplikowany identyfikator / certyfikat programisty, na który wszyscy narzekają, i próbowałem usunąć wszystkie moje profile, unieważnić / ponownie wydać certyfikat, upewniając się, że nie ma go w pęku kluczy systemu, restartowałem itp.

W końcu okazało się, że był certyfikat w pęku kluczy systemu, jednego, który upłynął i tak zostało domyślnie ukryte na liście.

Upewnij się, że możesz zobaczyć wygasłe certyfikaty w KeyChain

Aby to zrobić:

  1. Otwórz dostęp do pęku kluczy
  2. Kliknij menu Widok
  3. Kliknij opcję Pokaż wygasłe certyfikaty
  4. następnie poszukaj i usuń wygasłe certyfikaty programisty

Super, jesteś geniuszem. Zrobiłem wszystko, co wymienione wszędzie. Pomogłeś mi rozwiązać problem sprzed kilku miesięcy. Niech cię Bóg błogosławi!
Bushra Shahid

1
Okazało się, że pod systemem pęku kluczy mam wygasły certyfikat. Pomogło mi to znaleźć! Dzięki!
christopher_f

11

Xcode 4 ma nową funkcję „Automatyczne udostępnianie urządzeń”. Znajduje się w organizatorze pod biblioteką / profilami udostępniania. Jeśli włączysz tę opcję, automatycznie pobierze profile obsługi administracyjnej z serwera obsługi administracyjnej programistów Apple, a tym samym pojawi się błąd związany z posiadaniem duplikatów. Najłatwiejszym sposobem rozwiązania tego problemu jest usunięcie wszystkich profili obsługi administracyjnej i naciśnięcie przycisku odświeżania, aby wyświetlić opcję „Automatyczne udostępnianie urządzeń”. Spowoduje to załadowanie profili obsługi administracyjnej z serwera i rozwiązanie problemu.


Dzięki za to. Usunąłem swoje profile i skorzystałem z automatycznego udostępniania urządzeń, aby je odzyskać, ale problem zniknął.
Sasho

To jest aktualne rozwiązanie, sprawdziło się u mnie (po wypróbowaniu innych rozwiązań wydają się być przestarzałe)
Kasihasi

7

jeśli chcesz zepsuć dostęp do pęku kluczy w celu usunięcia wygasłego certyfikatu, możesz spróbować tego:

  • utwórz nowy pęk kluczy, nazwij go „wygasł” i przenieś do niego TYLKO wygasły certyfikat.
  • usuń nowo utworzony pęk kluczy, który wygasł, zawierający TYLKO wygasły certyfikat, po wyświetleniu monitu wybierz opcję „Usuń odniesienia i pliki”.

wygasły certyfikat znika wraz z pękiem kluczy. działało idealnie dla mnie.


6
  1. Usuń wszystkie profile obsługi administracyjnej z XCode Organizer;
  2. Usuń stare certyfikaty deweloperów z dostępu do pęku kluczy;
  3. Generuj profile obsługi administracyjnej tylko z odpowiednim certyfikatem programisty;
  4. Pobierz i zainstaluj nowe profile obsługi administracyjnej;

-- EDYTOWAĆ --

Połącz odpowiedź @ Codezy i komentarz @ iphone007.


Twoja odpowiedź nie rozwiązała mojego problemu, w rzeczywistości kilkakrotnie usuwałem certyfikaty programistów i profile obsługi administracyjnej, ale stary certyfikat programisty zawsze jest ponownie instalowany. Ale użytkownika @ iphone007 komentarz jest pomocny, po prostu je połączyć ....
Pan Ming

2

Usuwając profile udostępniania w bibliotece Organizatora, dodatkowo należy usunąć certyfikat programisty iPhone'a w aplikacji Dostęp do pęku kluczy. (Nazwa certyfikatu prawdopodobnie ma postać „iPhone Developer: XXXXX ...” i jest oznaczona czerwonym znakiem X, ponieważ wygasł)


Samo usunięcie i ponowne zainstalowanie profili aprowizacji w Organizatorze nie pomogło, ale Twoja sugestia usunięcia wygasłego profilu z pęku kluczy naprawiła to za mnie, dzięki!
gulchrider

2

Spędziłem na to pół dnia i wreszcie znalazłem rozwiązanie

  1. Otwórz aplikację KeyChain Access.app
  2. Wybierz opcję „System” w menu „Breloki” w lewej części ekranu aplikacji pęku kluczy
  3. Wybierz "Certyfikaty" w menu dolnym "Kategoria"
  4. Usuń wszystkie stare certyfikaty.

Następnie zamknij Keychain.app i przejdź do Xcode -> Organizer

  1. Usuń wszystkie profile obsługi administracyjnej w menu Biblioteka
  2. Usuń wszystkie profile obsługi administracyjnej w menu Urządzenia
  3. Naciśnij przycisk „Odśwież” w menu Biblioteka -> Profil obsługi administracyjnej
  4. Dodaj potrzebne profile do swojego urządzenia

Zbuduj ponownie swoją aplikację :)


1

Dla potomnych oto strategia obejścia tego problemu w naszym automatycznym skrypcie kompilacji:

  1. Przed utworzeniem przenieś katalog ~ / Library / MobileDevices / Provisioning Profiles na bok
  2. Sprawdź, czy iPhone Configuration Utility działa i zamknij je (certyfikaty zawsze pojawiają się ponownie, jeśli ta aplikacja jest otwarta. W XCode 4.1 musisz również zamknąć organizator).
  3. Uruchom budowanie
  4. Przenieś z powrotem katalog Provisioning Profiles
  5. Zysk?

1

Wypróbowałem wszystko, co tutaj zasugerowałem, ale nic nie działało, poza ponownym zainstalowaniem XCode 4.3 magicznie rozwiązało sprawę.


1

Wymyśliłem naprawdę łatwy sposób na naprawienie tego w 4.6.1. Możesz to zrobić bez ponownego uruchamiania czegokolwiek lub usuwania jakichkolwiek profili!

Z dostępem do pęku kluczy i otwartym projektem Xcode:

  1. W Xcode otwórz Organizator - „Urządzenia” i wybierz „zespół” ze zduplikowanym certyfikatem.
  2. Przełącz się na dostęp do pęku kluczy i usuń stare zduplikowane certyfikaty. Uwaga: upewnij się, że włączono opcję „pokaż wygasłe certyfikaty”, aby nie przegapić żadnego.
  3. Certyfikaty znikną z profilu „zespołu” w Organizatorze Xcode.
  4. Czysty projekt i kompilacja.

Mam nadzieję, że to pomoże!


0

powyższa metoda nie działa w moim przypadku

wreszcie idę do pęku kluczy

i wyszukaj klucz, wprowadzając nazwę

w końcu znalazłem certyfikat, który powinien zostać wcześniej usunięty. potem go usunąłem i problem został rozwiązany

to naprawdę frustrujące i nie wiem, czy to jest błąd ....... naprawdę wyczerpujący.


0

Cytując odpowiedź na duplikat to pytanie, niektóre robaki Xcode w tym obszarze może być rozwiązany tylko poprzez ponowne uruchomienie OS X .

Ostatecznie odniosłem sukces, usuwając wszystko wymienione w którejkolwiek z odpowiedzi na to pytanie, restartując, a następnie ręcznie instalując potrzebne części (nie ufałem / nie wypróbowałem funkcji automatycznego pobierania profilu / certyfikatu).


0

Nieważne, @AndreasPrang, twoja odpowiedź zadziałała, gdy nie wszystkie powyższe odpowiedzi. Widziałem, że wygasłego certyfikatu nie ma nigdzie w pęku kluczy, ale kiedy zrobiłem kompilację, Xcode powiedział, że tak. Usunięcie profili aprowizacji (wszystkich), wybranie mojego imienia i nazwiska w sekcji Zespół i kliknięcie ikony odświeżania w prawym dolnym rogu organizatora również nie pomogło. Ponowne uruchomienie Xcode nie pomogło, ale zamknięcie XCode, usunięcie ~ / Library / Developer / Xcode tak. Kiedy ponownie uruchomiłem XCode, wszystko odbudował i był szczęśliwy.



0

Właśnie zainstalowałem Xcode 4.6.1 i ponownie zacząłem mieć ten problem. Ostatni raz był dawno temu. Usunąłem stare profile aprowizacji i certyfikaty, ale nadal nie mogłem zbudować.

Tym razem okazuje się, że miałem 2 certyfikaty wymienione dla mnie na koncie zespołu portalu deweloperskiego. Pierwsza wygasła, druga nie. Xcode przechwytywał pierwszy znaleziony podczas odświeżania (a może oba).

Usunąłem oba certyfikaty z pęku kluczy, a następnie ręcznie pobrałem dobry z portalu Apple i ręcznie dodałem go do pęku kluczy. Teraz mogę znowu budować.

(I wysłałem prośbę do administratora zespołu o usunięcie starego certyfikatu).


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.