Próbuję dodać nowy profil obsługi administracyjnej do mojego Xcode, aby przetestować aplikację na urządzeniu. Oto kroki, które wykonałem:
Usunięto wszystkie certyfikaty i profile obsługi
Utwórz / dodaj certyfikat dewelopera IOS
Dodaj moje urządzenie IOS w trybie online
Utwórz profil obsługi administracyjnej systemu IOS
Dodaj profil obsługi administracyjnej systemu IOS
Czysta aplikacja
Zbuduj, a następnie uruchom aplikację
Ustaw Codesigning i Provisioning Profile w Build Settings
Dużo Googlowania> bez sukcesów
Oto błąd, który otrzymuję:
CSSM_SignData returned: 800108E6
/Users/alexpelletier/Library/Developer/Xcode/DerivedData/MyExpense-efnqzvoqwngzcmazaotyalepiice/Build/Products/Debug-iphoneos/MyExpense.app: errSecInternalComponent
Command /usr/bin/codesign failed with exit code 1
ios
xcode
certificate
provisioning-profile
Alex Pelletier
źródło
źródło
Odpowiedzi:
Otwórz Dostęp do pęku kluczy , a następnie w menu Plik wybierz Zablokuj wszystkie pęki kluczy .
Następnie wróć do Xcode, wyczyść i odbuduj. Poprosi Cię o ponowne podanie hasła w celu odblokowania pęku kluczy.
Po tym, zakładając, że nie masz innych problemów z kompilacją, to się powiedzie!
źródło
Wygląda na to, że błąd w mechanizmie podpisywania kodu, ponowne uruchomienie komputera Mac powinno rozwiązać problem
źródło
Dzieje się tak, gdy pęk kluczy logowania jest zablokowany. Aby odblokować pęku kluczy logowania, uruchom:
Jeśli Twój pęk kluczy jest chroniony hasłem, podaj hasło za pomocą
-p
opcji.Następnie spróbuj ponownie wykonać operację kompilacji lub podpisywania kodu. Kod błędu, o którym mowa, jest opisany w dokumentach Apple jako błąd wewnętrzny, więc jest całkiem możliwe, że zdarza się to również w innych przypadkach.
źródło
codesign
nie udało i to jest magiczne polecenie, które mnie uratowało !!!Gdy ten sam problem pojawił się w
High Sierra
/Xcode 9.4.1
, wszystkie próby zalogowania się zakończyłyerrSecInternalComponent
Alternatywnie:
uruchom polecenie Codesign na terminalu Mac i „Zawsze zezwalaj” / usr / bin / Codesign na dostęp do klucza
Jeśli próbujesz podpisać z ssh / CI, musisz również uruchomić
przed próbą podpisania pakietu aplikacji
źródło
security unlock-keychain -p <password> login.keychain
z CI.~/.bash_profile
tak, aby pęku kluczy odblokowywał się podczas uruchamiania klienta SSH, ale nie potrzebujesz odniesienia do niego ze skryptu CISpotkałem ten sam problem, ponownie uruchamiam macOS i działa.
W Chinach mamy powiedzenie między programistami:
Czasami powyższe powiedzenie bardzo ci pomoże!
źródło
Na wypadek, gdyby pomogło to komuś innemu, napotkałem
errSecInternalComponent
błąd,codesign
ponieważ uruchamiałem go podczas sesji ssh na moim komputerze z systemem macOS. Uruchomienie tego samego polecenia z okna terminala na komputerze z systemem macOS działało.Prawdopodobnie dzieje się tak, ponieważ
codesign
wymaga dostępu do klucza prywatnego z pęku kluczy logowania.Uruchomienie
security unlock-keychain login.keychain
(jak wyjaśnia odpowiedź cbrackena ) z tej samej sesji również powinno działać.źródło
Jeśli próbujesz podpisać polecenie ssh run:
przed próbą podpisania pakietu aplikacji
lub z interfejsu użytkownika
Zaktualizuj kontrolę dostępu do klucza na „Zezwalaj wszystkim aplikacjom na dostęp do tego elementu”
Podziękowania dla @Equilibrium i @Jon McClung
źródło
Miałem ten sam problem. Okazało się, że problem dotyczy podpisywania kodu aplikacji.
źródło
Pobiegłem
security unlock-keychain login.keychain
i moje hasło logowania nie działa. Więc zrestartowałem, a potem po prostu ponownie uruchomiłem Xcode i zadziałało. Uruchomienie polecenia również działa. Dziwny problem.źródło
Jak wskazał @Equilibrium w jednym z komentarzy, jeśli jesteś w wierszu poleceń env. podobnie jak Jenkins (mój przypadek), może być konieczne przekazanie hasła do polecenia odblokowania zabezpieczeń wspomnianego w rozwiązaniach.
Więc zamiast używać,
posługiwać się:
gdzie pęku kluczy ścieżka do logowania może być $ HOME / Library / Keychains / login.keychain (mój przypadek) lub po prostu login.keychain
źródło
dla każdego, kto napotkał ten problem z jenkins i ssh:
duże prawdopodobieństwo, że nie przyznałeś dostępu do klucza prywatnego w pęku kluczy. Próbowałem, ale nie jestem pewien, dlaczego wszystkie one nie działają:
ostatecznie rozwiązany przez:
1.ssh [użytkownik] @ [jenkinsServerIP] -L 5900: localhost: 5900, zaloguj się do serwera jenkins
2. open „vnc: // localhost”
to uruchomi zdalny ekran, jeśli twój serwer jenkins pozwala na to ...
następnie otwórz keychain.app, aby przyznać dostęp do / usr / bin / codsign do klucza prywatnego
powodzenia
źródło
Po prostu spróbuj raz, używając terminala Mac, ale nie z sesji ssh
I wybierz zawsze zezwalaj w wyświetlonym oknie dialogowym. A potem możesz xcodebuild w sesji zdalnej.
źródło
Kliknięcie prawym przyciskiem myszy na klucz prywatny powiązany z certyfikatem do kodowania w pęku kluczy, a następnie kliknięcie „zezwól na wszystkie aplikacje” zamiast polegania na monicie, naprawiło to za mnie, ponieważ kompilacja odbywała się za pośrednictwem ssh.
źródło
Musiałem:
1) usuń certyfikat powiązany z projektem
2) Wróć do Xcode i unieważnij certyfikat aplikacji
3) Xcode wymaga nowego certyfikatu
4) Zablokuj wszystkie KeyChain
5) Wyczyść projekt
6) Odbuduj
Otóż to. Mam nadzieję, że to pomoże każdemu.
źródło
Powyższe metody są dla mnie bezużyteczne.
Rozwiązałem to przez:
Otóż to. Mam nadzieję, że to pomoże każdemu.
źródło