Xcode 8 pokazuje błąd, że profil udostępniania nie obejmuje certyfikatu do podpisywania.
Ten problem dotyczy tylko Xcode-8 z Xcode 7, ten sam profil udostępniania pokazuje powiązany zidentyfikowany certyfikat.
ios
iphone
xcode8
provisioning-profile
Satish Mavani
źródło
źródło
Odpowiedzi:
Istnieje wiele sposobów rozwiązania tego problemu, na przykład włączenie automatycznego podpisywania itp. Ale jeśli chcesz zrozumieć przyczynę tego błędu, spójrz na komunikat o błędzie.
Mówi, że profil udostępniania wybrany na karcie „Ogólne” nie zawiera certyfikatu podpisywania wybranego w „Ustawieniach kompilacji” -> „Tożsamość podpisywania kodu”.
Zwykle dzieje się tak, jeśli dla tożsamości debugowania wybrano certyfikat dystrybucyjny w sekcji „Ustawienia kompilacji” -> „Tożsamość podpisywania kodu”.
Jeśli dzieje się tak w sekcji „Podpisywanie (debugowanie)” może to oznaczać, że „Tożsamość podpisu” -> „Rozwój systemu iOS” nie jest uwzględniony w profilu udostępniania.
źródło
Sprawdź, czy w pęku kluczy nie ma tożsamości klucza prywatnego. Miałem wiele certyfikatów dystrybucyjnych dla tego samego zespołu, w jednym brakowało klucza prywatnego. Xcode sprawdzał tylko pierwszą pasującą tożsamość w pęku kluczy i automatycznie używał tego, w przeciwieństwie do tego, który zawierał klucz prywatny.
Usunięcie pasującej tożsamości, która nie miała klucza prywatnego, spowodowało, że Xcode ponownie wykrył prawidłową tożsamość.
źródło
Aby to naprawić,
Po prostu włączam „Automatyczne zarządzanie podpisywaniem” w zakładce ogólnej ustawień projektu, Przed włączeniem obawiałem się, że może to mieć pewne skutki uboczne, ale kiedy włączysz, to działa dla mnie.
Mam nadzieję, że to pomaga innym!
źródło
Dla tych, którzy z jakiegoś powodu powinni nadal stosować auotamatic
Otwórz keyChain Access, aby zobaczyć, czy istnieją dwa takie same certyfikaty, jeśli są dwa lub więcej, po prostu usuń do jednego i będzie działać :)
źródło
Wystąpił ten problem po niedawnej aktualizacji Xcode do wersji 9.3. Problem polegał na tym, że podpisywanie kodu (podczas debugowania) certyfikat został ustawiony na certyfikat dystrybucyjny zamiast certyfikatu programistycznego, co uniemożliwiło mi zainstalowanie aplikacji na moich urządzeniach.
Oto, co zrobiłem, aby rozwiązać ten problem.
Projekt -> Cele -> Wybierz aplikację -> Ustawienia kompilacji -> Tożsamość podpisywania kodu -> Debuguj -> Kliknij dwukrotnie „Dystrybucja iPhone'a” i zmień ją na „iPhone Developer”.
źródło
Odznaczono, a następnie zaznaczyłem opcję „Automatycznie zarządzaj podpisywaniem”. To naprawiło to dla mnie.
źródło
Co warte automatycznego podpisywania nie udawało się za każdym razem, dopóki ręcznie nie usunąłem profili lokalnych w: ~ / Library / MobileDevice / Provisioning Profile
Po tym automatyczne podpisywanie działało idealnie i uzyskało właściwe profile z serwerów Apple.
Miało to wpływ tylko na niektóre kompilacje, zwłaszcza te, dla których ręcznie utworzyłem profile dla aplikacji do oglądania.
źródło
CMD + Shift + .
aby wyświetlić wszystkie ukryte pliki.Dla tych, którzy nadal borykają się z tym problemem w Xcode8. Dla mnie był to duplikat problemu z certyfikatem, oto jak go rozwiązałem:
Przeczytałem odpowiedź Nicka, a potem rozpocząłem dochodzenie. Sprawdziłem wszystkie klucze i certyfikaty w moim konkretnym przypadku (wewnątrz ~ / Library / Keychains / System.keychain).
Kiedy otworzyłem plik, okazało się, że mam dwa Certyfikaty dystrybucyjne iPhone'a (to był certyfikat, o który prosił mnie Xcode), jeden z prywatnym kluczem dystrybucyjnym iOS, którego używam od początku, oraz inny Certyfikat dystrybucyjny iPhone'a, którego jest klucz prywatny miał nazwę (iOS Distribution: NAME), która nie była mi znana. Usunąłem ten ostatni certyfikat, ponownie uruchomiłem Xcode i problem zniknął. xCode nie był w stanie rozwiązać tego konfliktu i dlatego cały czas powodował błąd certyfikatu podpisywania.
Sprawdź breloki, może masz zduplikowany certyfikat.
źródło
Jeśli użyjesz ręcznego podpisywania (na co zdecydowanie zachęcam), ten błąd może wystąpić, ponieważ Xcode uważa, że powinien podpisać kompilację wersji certyfikatem programisty, który oczywiście nie jest uwzględniony w profilu udostępniania wersji.
Istnieje ustawienie kompilacji, które określa, który certyfikat powinien zostać użyty dla jakiej konfiguracji kompilacji. Aby to zmienić, przejdź do kompilacji ustawień i wyszukaj Tożsamość podpisywania kodu . Po rozwinięciu powinny istnieć osobne wiersze dla każdej konfiguracji kompilacji (zwykle Debugowanie i wydanie) z drugą kolumną z wybraną tożsamością (zwykle deweloper iOS lub dystrybucja iOS). Upewnij się, że jest ustawiony na poprawną tożsamość dla każdej konfiguracji kompilacji.
W niektórych przypadkach można również rozszerzyć konfiguracje kompilacji. Upewnij się, że również jego podelementy są ustawione na poprawne tożsamości.
źródło
Możesz także rozwiązać problemy z podpisywaniem kodu dzięki świetnemu zestawowi narzędzi Fastlane . Autorzy wkładają wiele wysiłku w efektywną automatyzację budowania, podpisywania aplikacji na iOS (i nie tylko).
Tak więc we wspomnianym pakiecie znajduje się narzędzie,
sigh
które magicznie rozwiązuje wszelkie problemy z podpisywaniem, stąd nazwa :) Ładne jest to, że to narzędzie zawiera wiedzę na temat typowych problemów z podpisywaniem i może wykryć i rozwiązać większość z nich.Fastlane jest instalowany jako klejnot Ruby:
gem install fastlane
A następnie po prostu przywołano:
fastlane sigh --development
Odpowiedz na dwa pytania i voila:
Na koniec przejdź do Ustawienia kompilacji -> Podpisywanie i przejdź do nowo utworzonego profilu obsługi administracyjnej, którego nazwę właśnie zobaczyłeś w danych wyjściowych polecenia.
Ten przykład dotyczy problemu z podpisywaniem kodu programistycznego (działającego na urządzeniu). Sprawdź dokumentację westchnienia dla wszystkich innych opcji.
źródło
Miał ten sam błąd. Profile wydają się odnowione, dodano nowe certyfikaty, sprawdziłem je nawet podczas pobierania. Odwołano również certyfikaty byłego dewelopera, wykluczone z profilu udostępniania. Ale Xcode wciąż pyta mnie o poprzednie certyfikaty z błędem:
więc co zrobiłem, aby to naprawić:
Build Settings
->Signing
->Code Signing Identity
Mam nadzieję, że to komuś pomoże.
źródło
W moim przypadku w pęku kluczy miałem dwa certyfikaty o tej samej nazwie, usunąłem jeden z certyfikatów, który jest zduplikowany, a następnie rozwiązałem problem.
źródło
„Włącz automatyczne podpisywanie”, a następnie wybranie zespołu z menu rozwijanego pomogło mi z tym właśnie problemem.
źródło
źródło
Xcode 11
To jest błąd, który dostałem
Teraz Xcode 11 automatycznie utworzył certyfikat „Apple Development: XXX”, który jest ważny na wszystkich platformach
Musisz tylko
źródło
Pozostały mi klucze prywatne z certyfikatów, które odwołałem, certyfikaty zniknęły, ale nie klucze prywatne. Usunięcie ich rozwiązało problem.
Aby je znaleźć:
Podświetlony klucz na zdjęciu to przykładowy klucz prywatny bez certyfikatu.
źródło
Mam ten sam problem. Zmieniłem Mac. A kiedy pobrałem certyfikat Xcode, otrzymałem komunikat o błędzie: „Błąd polega na tym, że profil bezpieczeństwa nie zawiera podpisu certyfikatu”.
1) Przejdź do https://developer.apple.com/account/ios/profile/limited/edit Wybierz projekt => edytuj => Certyfikaty => Wybierz wszystko => Utwórz => Pobierz
2) W Xcode: plik projektu => podpisywanie (debugowanie) => profil obsługi administracyjnej => profil importu => wybierz plik z 1
źródło
Dla mnie żadne z powyższych rozwiązań nie zadziałało. Migrowałem z dwóch starszych komputerów Mac do nowego komputera Mac, próbując uzyskać profile wydania / debugowania działające na Xcode BEZ automatycznego zarządzania nimi przez Xcode.
Rozwiązaniem było dla mnie, że kiedy poszłam i stworzyłam dwa nowe Certyfikaty, JUŻ TAKŻE wejść w moje profile udostępniania i dodać (w ramach dystrybucji i dewelopera) nowe certyfikaty do profili udostępniania, aby je rozpoznać. Po zrobieniu tego i pobraniu xcode usunął wszystkie błędy i dobrze jest zacząć.
Mam nadzieję, że to komuś pomoże!
źródło
Dostałem jeden z tych e-maili od Apple:
Utworzyłem nowy certyfikat, który unieważnił poprzedni certyfikat (lokalnie i na dowolnym innym komputerze Mac dewelopera). Aby działało, muszę pobrać nowe profile udostępniania.
Rozwiązaniem jest:
Ja osobiście nie miałem takiego dostępu. Ten dostęp był dostępny tylko dla administratora naszego zespołu, dlatego nie mam zrzutów ekranu ani nie jestem pewien, czy te kroki są w 100% prawidłowe.
źródło
Nie widziałem tego wcześniej, ale jeśli nadal masz problemy po odtworzeniu profili obsługi administracyjnej, usuwaniu istniejących w folderze profili obsługi, sprawdzaniu duplikatów w pęku kluczy itp. (Wszystkie inne odpowiedzi ITT), otwórz Cel> Ustawienia kompilacji> Podpisywanie kodu i upewnij się, że wszystko tam wygląda spójnie. Na przykład zmieniłem Identyfikację podpisywania kodu do debugowania na tożsamość dystrybucji, co oczywiście nie działałoby, ponieważ profil udostępniania dla programistów nie ma certyfikatu dystrybucji i powodował błąd.
źródło
Jeśli próbujesz załadować aplikację do iTunes Connect (Twoje profile udostępniania są ustawione na Dystrybucję), przejdź do Ustawienia projektu -> Ustawienia kompilacji -> Podpisywanie kodu. Upewnij się, że ustawiłeś wszystkie Opcje debugowania i wydania w swoim profilu Provisioning Provisioning Provisioning.
źródło
Wydaje się, że problem zaczyna się pojawiać w Xcode 11 .
przejdź do Xcode -> Preferencje-> Konta-> Pobierz profile ręczne
źródło
Oto kroki dla mnie rozwiązane (dla tych, którzy napotykają ten sam problem w XCode 9.2):
Wystarczy ręcznie usunąć profile lokalne w ~ / Library / MobileDevice / Provisioning Profile.
Usunięto i utworzono wszystkie certyfikaty i profil udostępniania z konta programisty.
Usunięto konto programistów z Xcode i ponownie je dodałem.
Rozwiązałem mój problem! :-)
źródło
Kliknięcie, ale następnie anulowanie „Włącz automatyczne podpisywanie” działało dla mnie, chociaż faktyczna zmiana, którą wprowadziłem, była:
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
lub w Xcode nazywa się
Always Embed Swift Standard Libraries
źródło
Miałem ten sam problem, a powodem był grosz. W ustawieniach kompilacji wybrano niewłaściwy profil i certyfikat. Zrobiłem to dopiero przez kilka dni. Nie musisz więc włączać „automatycznego” w xcode. Zanim to zrobisz, sprawdź profile w ustawieniach kompilacji.
źródło
Spróbuj pobrać certyfikaty / profile bezpośrednio z centrum członkowskiego zamiast robić to z Xcode.
Działa to dla mnie, gdy ręcznie pobrałem je z centrum członkowskiego.
źródło
Walczyłem z tym przez wiele dni.
Krok 1: Usunięto wszystkie certyfikaty, profil udostępniania, identyfikator aplikacji, klucz itp. Z konta programisty.
Krok 2: Odtworzono certyfikaty powiadomień wypychanych, profil udostępniania, identyfikator aplikacji itp.
Krok 3: Usunięto wszystkie certyfikaty z pęku kluczy.
Krok 4: Wyczyść wszystkie profile udostępniania z ~ / Library / MobileDevice / Provisioning Profile.
Krok 5: Dodano tylko wymagany plik obsługi i przetestowano. To działa dobrze.
źródło
Oznacza to, że musisz wykonać jedną z poniższych czynności:
Rozwiązaniem nr 2, gdy nie możesz uzyskać certyfikatu i pliku .p12 od twórcy, byłoby po prostu zaznaczenie opcji „Automatycznie zarządzaj podpisywaniem”.
źródło
Dzieje się tak, ponieważ profil udostępniania nie może znaleźć pliku certyfikatu, z którym jest połączony.
Naprawić:
Błąd powinien zniknąć teraz.
źródło
Ten problem jest spowodowany tym, że klucz prywatny w certyfikacie w twoim profilu nie pasuje do tego w twoim pęku kluczy. Rozwiązuję to przez
ta sama odpowiedź z problemem podpisywania kodu w Xcode w wersji 8 .
źródło