Podpisywanie kodu jest wymagane w przypadku pakietu testów jednostkowych typu produktu w SDK iOS 8.0


128

Dostać

Podpisywanie kodu jest wymagane dla typu produktu „Pakiet testów jednostkowych” w SDK „iOS 8.0”

Celem mojej aplikacji jest podpisywanie kodu w porządku - ale mój cel testowy nie. Kupiłem nowy komputer, utworzyłem na komputerze nowy certyfikat programistyczny, odpowiednio zaktualizowałem profil informacyjny, zainstalowałem oba, ale nie mogę obejść tego błędu podpisywania kodu.

Jakikolwiek sposób na wymazanie wszystkich certyfikatów / profili lokalnie, aby móc ponownie zainstalować?

Prawdopodobnie jakiś błąd.


Miałem podobny błąd - moją poprawką było przejście do ustawień kompilacji i wybranie profili obsługi administracyjnej, zamiast automatycznego wybierania ich.
scb998,

Odpowiedzi:


129

Problem polega na tym, że projekt jest pod kontrolą źródła i za każdym razem, gdy wyciągam plik .xcodeproj jest aktualizowany. A ponieważ mój profil aprowizacji różni się od profilu w kontroli źródła, cel testu jednostkowego automatycznie przełącza się na „Nie podpisuj kodu”. Więc po prostu muszę ustawić tam profil po każdym git pullu.

Najwyraźniej w przypadku wdrażania na urządzeniu, jeśli istnieje cel testu jednostkowego, musi być podpisany kodem.

Kroki:

1) Zmień cel na cel testowy (AppnameTests)

wprowadź opis obrazu tutaj

2) Upewnij się, że „Tożsamość podpisywania kodu” NIE oznacza „Nie podpisuj kodu”. Wybierz profil, z którym chcesz się podpisać

wprowadź opis obrazu tutaj

To wszystko, co musiałem zmienić, aby to zadziałało.


mam ten sam problem, jak wspomniany w powyższym pytaniu, ale nie jestem w stanie dowiedzieć się, jak go rozwiązać i opublikowałem pytanie dotyczące tego samego. stackoverflow.com/questions/27312745/ ...
Neal

Czy możesz mi powiedzieć krok po kroku, jak to zrobić.
Neal

Miałem problem w Xcode 8. Rozdzielczość nie była identyczna z twoją, ale bliska. Dzięki za wskazanie mi drogi!
user3259235

Oprócz ustawienia „Tożsamości podpisywania kodu” może być również konieczne ustawienie „zespołu programistów”.
bits i

100

Rozwiązałem problem (tymczasowo), przechodząc do Edytuj schemat, a następnie do sekcji Kompilacja, usuwając mój cel testu jednostkowego z wywołania w „Uruchom”.


1
Dobry chwyt! Dlaczego mówisz chwilowo ? Wydaje mi się, że to rozsądne rozwiązanie. Czy przesłałeś aplikację do sklepu?
mokagio

Nie ma problemu z przesłaniem aplikacji do App Store. Powiedziałem „tymczasowo”, ponieważ doszedłem do wniosku, że istnieje trwalsza poprawka, która jest możliwa dzięki majstrowaniu przy podpisywaniu kodu, ale była to szybka i bezproblemowa poprawka.
ZS

2
Fajne dzięki. Wydaje mi się, że to dobre rozwiązanie, cel testu jednostkowego i tak nie powinien działać. +1
mokagio

Czy możesz wyjaśnić mi więcej szczegółów? masz na myśli, że muszę „budować”? i nie rozumiem `` usuwania mojego testu jednostkowego z wywołania w Run ''
LKM

66

Inne porady nie pomogły mi, ale naprawiłem ten błąd, przechodząc do Product > Scheme > Edit Scheme. Następnie kliknąłem Buildpo lewej stronie i odznaczyłem wszystkie pola wyboru obok AppNameTests. Używam XCode 6.3

wprowadź opis obrazu tutaj


@Almo Nie odznaczaj żadnych pól pod "Test", ale zamiast tego odznacz wszystko (co możesz odznaczyć) w wierszu oznaczonym APPNAMEtests. Dołączę zrzut ekranu do mojej odpowiedzi, aby wyjaśnić.
Olivia Stork

1
Zrobiłem to i nie zaznaczałem wszystkiego oprócz Testu. Okazało się, że musiałem usunąć plik .plist, aby przestał próbować kodować podpisywanie testu. Mój projekt tworzy bibliotekę statyczną, więc żadna z nich nie musi być kodowana.
Almo

1
Ahh ok. Cóż, na pewno wygląda na to, że istnieje wiele powodów, dla których ten problem może być spowodowany, i równie wiele sposobów jego naprawienia. Jeśli nikt inny nie wspomniał o Twoim rozwiązaniu, możesz rozważyć opublikowanie go jako innej możliwej odpowiedzi.
Olivia Stork

3
@huggie ¯ \ _ (ツ) _ / ¯ Witamy w programowaniu na iOS!
Olivia Stork

1
@OliviaStork, zobowiązałeś mnie. bardzo dziękuję za uratowanie mojej pracy.
Anurag Shrivastava

29

Naprawiłem to, ręcznie wybierając profil aprowizacji w ustawieniach kompilacji dla celu testowego.

Testuj ustawienia docelowe -> Ustawienia kompilacji -> Podpisywanie kodu -> Podpisywanie kodu tożsamości. Wcześniej było ustawione na „Nie podpisuj kodu”.


Wybranie profilu informacyjnego zadziałało dla mnie, dzięki.
Mike Weller

Upewnij się też, że u góry jest wybrany filtr „Wszystkie”, a nie „Podstawowy”.
Marty

13

Ponadto, jeśli ustawisz urządzenie docelowe kompilacji, problem zniknie podczas testowania i debugowania. Podpisany kod jest potrzebny tylko wtedy, gdy próbujesz wdrożyć aplikację na faktycznie fizycznym urządzeniuFiga

Zmieniłem mój z „myIphone” na symulator iPhone'a 6 Plus i rozwiązuje to problem podczas rozwijania aplikacji.


1
ale co jeśli chcesz wdrożyć aplikację na urządzeniu fizycznym?
Marwen Trabelsi

8

W moim przypadku problem z jakim się spotkałem to:

Błąd CodeSign: podpisywanie kodu jest wymagane dla typu produktu „Pakiet testów jednostkowych” w SDK „iOS 8.4”

Na szczęście cel niczego nie zaimplementował, więc szybkim rozwiązaniem jest jego usunięcie.

wprowadź opis obrazu tutaj


3

Jeśli nic nie działa z powyższych rozwiązań, wykonaj następujące kroki

Z celów wybierz nazwę aplikacjiTesty w sekcji „Informacje”

Zmień następujące

Identyfikator pakietu: com.ProjectName. $ (PRODUCT_NAME: rfc1034identifier)

do com.ProjectName.appname

Nazwa pakietu: $ (PRODUCT_NAME)

Nazwa pakietu: nazwa aplikacji

Skompiluj i wykonaj


2

Otrzymywałem ten błąd podczas uruchamiania xcodebuild z wiersza poleceń w celu przeprowadzenia testów integracji na CI mojej pracy. Udało mi się go uruchomić, ustawiając na poziomie projektu ustawienie Codesign. Z jakiegoś powodu ustawienie docelowe zostało zignorowane i powróciło do ustawień projektu.


1

Rozwiązuję problem, zmieniając „Profil obsługi administracyjnej” w tej samej sekcji („Podpisywanie kodu”) z Automatycznego na „Nazwa MyProvisioningProfile”


0

Cześć, mam dziś ten sam problem. Po przeczytaniu odpowiedzi "Spentaka" próbowałem dokonać podpisu kodu mojego celu na iOSDeveloper, ale nadal nie działało. Ale po zmianie „Profilu obsługi administracyjnej” na „Automatyczny” projekt został skompilowany i uruchomiony bez błędów podpisywania kodu.


0

Czasami zdarza się to, gdy pobierasz projekt z github lub innych witryn samouczków innych firm.Te aplikacje są zwykle podpisane przy użyciu innej tożsamości lub firmy / nazwy.W takim przypadku, jeśli nie możesz rozwiązać rozwiązania, po prostu utwórz nowy projekt xcode i skopiuj wszystkie pliki nagłówka i implementacji do nowego projektu. Nie zapomnij też o plikach zależności ... takich jak pliki frameworka. To działa dla mnie.

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.