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.

Spentak
źródło
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.

Spentak
źródł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”.

ZS
źródło
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

Olivia Bocian
źródło
@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”.

Mróz
źródło
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.

Ian Zhao
źródło
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

Javier Calatrava Llavería
źródło
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

nirvana74v
źródło
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.

Śrut
źródło
1

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

arniotaki
źródło
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.

Sahan Maldeniya
źródło
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.

BrainyMonkey
źródło