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.
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.
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.
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ść.
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.
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ć :)
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”.
Odznaczono, a następnie zaznaczyłem opcję „Automatycznie zarządzaj podpisywaniem”. To naprawiło to dla mnie.
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.
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.
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.
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:
[11:56:55]: No existing profiles found, that match the certificates you have installed locally! Creating a new provisioning profile for you
[11:57:01]: Creating new provisioning profile for 'com.myapp' with name 'com.myapp Development'
[11:57:06]: Downloading provisioning profile...
[11:57:09]: Successfully downloaded provisioning profile...
[11:57:09]: Installing provisioning profile...
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.
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:
No certificate for team 'MY_TEAM' matching 'iPhone Developer: FORMER_DEVELOPER' found
więc co zrobiłem, aby to naprawić:
Build Settings
->Signing
->Code Signing Identity
Mam nadzieję, że to komuś pomoże.
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.
Xcode 11
To jest błąd, który dostałem
Profil udostępniania „XXX” nie obejmuje certyfikatu do podpisywania „Apple Development: XXX (XXX)”. ``
Teraz Xcode 11 automatycznie utworzył certyfikat „Apple Development: XXX”, który jest ważny na wszystkich platformach
Musisz tylko
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.
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
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!
Dostałem jeden z tych e-maili od Apple:
Drogi Johnie Doe,
Następujący certyfikat został unieważniony przez członka zespołu programistów lub wygasł:
Certyfikat: iOS Development
Nazwa zespołu: Honey Team, LLC
Nie wpływa to na aplikacje przesłane do App Store ani na możliwość ich aktualizacji. Jeśli korzystasz z profili udostępniania, które zawierają ten certyfikat, należy je ponownie utworzyć, zanim będzie można ich ponownie użyć. Aby uzyskać szczegółowe informacje, zobacz sekcję „Omówienie podpisywania aplikacji” Pomocy Xcode.
Z poważaniem,
Wsparcie dla programistów 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.
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.
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.
Wydaje się, że problem zaczyna się pojawiać w Xcode 11 .
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! :-)
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.
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”.
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.
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 .