Für den Produkttyp Unit Test Bundle in SDK iOS 8.0 ist eine Codesignatur erforderlich

128

Bekommen

Für den Produkttyp 'Unit Test Bundle' im SDK 'iOS 8.0' ist eine Codesignatur erforderlich.

Mein App-Ziel ist die Codesignatur - mein Testziel jedoch nicht. Ich habe einen neuen Computer gekauft, ein neues Entwicklungszertifikat vom Computer erstellt, das Bereitstellungsprofil entsprechend aktualisiert, beide installiert, kann diesen Codesignaturfehler jedoch nicht überwinden.

Gibt es eine Möglichkeit, alle Zertifikate / Profile lokal zu löschen, damit ich sie neu installieren kann?

Wahrscheinlich eine Art Fehler.

Spentak
quelle
Ich hatte einen ähnlichen Fehler - mein Fix bestand darin, in die Build-Einstellungen zu gehen und die Bereitstellungsprofile auszuwählen, anstatt sie automatisch auszuwählen.
scb998

Antworten:

129

Das Problem ist, dass das Projekt unter Quellcodeverwaltung steht und jedes Mal, wenn ich die .xcodeproj-Datei ziehe, aktualisiert wird. Und da sich mein Bereitstellungsprofil von dem in der Quellcodeverwaltung unterscheidet, wechselt das Unit-Test-Ziel automatisch zu "Nicht codieren". Also muss ich einfach das Profil dort nach jedem Git-Pull einstellen.

Wenn es auf einem Gerät bereitgestellt wird und ein Unit-Test-Ziel vorhanden ist, muss es anscheinend mit einem Code signiert sein.

Schritte:

1) Ändern Sie das Ziel in Ihr Testziel (AppnameTests)

Geben Sie hier die Bildbeschreibung ein

2) Stellen Sie sicher, dass "Code Signing Identity" NICHT "Don't Code Sign" ist. Wählen Sie ein Profil aus, mit dem Sie unterschreiben möchten

Geben Sie hier die Bildbeschreibung ein

Das war alles, was ich ändern musste, damit es funktioniert.

Spentak
quelle
Ich stehe vor dem gleichen Problem wie in der obigen Frage, kann aber nicht herausfinden, wie ich es lösen kann, und ich habe eine Frage zu diesem Thema gestellt. stackoverflow.com/questions/27312745/…
Neal
Könnten Sie mir bitte einen schrittweisen Prozess erklären, wie es geht.
Neal
Hatte das Problem in Xcode 8. Die Auflösung war nicht identisch mit Ihrer, aber nahe. Danke, dass du mir den Weg gezeigt hast!
user3259235
Zusätzlich zum Festlegen der 'Code Signing Identity' müssen Sie möglicherweise auch das 'Development Team' festlegen.
Bitsand
100

Ich habe das Problem (vorübergehend) behoben, indem ich zu Schema bearbeiten und dann im Abschnitt Erstellen das Entfernen meines Komponententestziels in "Ausführen" entfernt habe.

ZS
quelle
1
Guter Fang! Warum sagst du vorübergehend ? Es sieht für mich nach einer vernünftigen Lösung aus. Haben Sie die App im Store eingereicht?
Mokagio
Es ist kein Problem, die App an den App Store zu senden. Ich sagte "vorübergehend", weil ich dachte, dass es eine dauerhaftere Lösung gibt, die durch das Herumspielen mit der Codesignatur möglich ist, aber dies war die schnelle, problemlose Lösung.
ZS
2
Cool, danke. Es scheint mir eine gute Lösung zu sein, das Unit-Test-Ziel sollte sowieso nicht laufen. +1
Mokagio
Können Sie mir mehr Details erklären? du meinst ich muss 'bauen'? und ich verstehe nicht 'Entfernen meines Unit-Tests vom Aufrufen in Run'
LKM
66

Der andere Rat hier hat mir nicht geholfen, aber ich habe diesen Fehler behoben, indem ich zu gegangen bin Product > Scheme > Edit Scheme. Dann klickte ich Buildauf die linke Seite und deaktivierte alle Kontrollkästchen neben AppNameTests. Ich benutze XCode 6.3

Geben Sie hier die Bildbeschreibung ein

Olivia Stork
quelle
@Almo Deaktivieren Sie keine Kontrollkästchen unter "Test", sondern deaktivieren Sie stattdessen alles (was Sie deaktivieren können) in der Zeile mit der Bezeichnung APPNAMEtests. Ich werde meiner Antwort einen Screenshot hinzufügen, um dies zu verdeutlichen.
Olivia Stork
1
Ich habe das getan und alles außer Test deaktiviert. Es stellte sich heraus, dass ich eine .plist-Datei entfernen musste, damit sie nicht mehr versuchte, den Test mit einem Code zu signieren. Mein Projekt erstellt eine statische Bibliothek, sodass keine davon mit einem Codesign versehen werden muss.
Almo
1
Ah, in Ordnung. Nun, es scheint sicher, dass es viele Gründe gibt, warum dieses Problem verursacht werden kann, und ebenso viele Möglichkeiten, es zu beheben. Wenn niemand Ihre Lösung erwähnt hat, können Sie sie als weitere mögliche Antwort veröffentlichen.
Olivia Stork
3
@huggie ¯ \ _ (ツ) _ / ¯ Willkommen bei der iOS-Programmierung!
Olivia Stork
1
@OliviaStork du hast mich verpflichtet. Vielen Dank, dass Sie meinen Job gerettet haben.
Anurag Shrivastava
29

Ich habe das Problem behoben, indem ich in den Build-Einstellungen für das Testziel manuell ein Bereitstellungsprofil ausgewählt habe.

Testzieleinstellungen -> Build-Einstellungen -> Codesignatur -> Codezeichenidentität. Zuvor war es auf "Code nicht signieren" eingestellt.

Frost
quelle
Die Auswahl des Bereitstellungsprofils hat für mich explizit funktioniert, danke.
Mike Weller
Stellen Sie außerdem sicher, dass oben der Filter "Alle" und nicht "Grundlegend" ausgewählt ist.
Marty
13

Wenn Sie Ihr Build-Zielgerät festlegen, wird das Problem beim Testen und Debuggen behoben. Der signierte Code wird nur benötigt, wenn Sie versuchen, Ihre App auf einem tatsächlich physischen Gerät bereitzustellenFeige

Ich habe meine von "myIphone" auf Simulator iPhone 6 Plus geändert und das Problem wird gelöst, während ich die App entwickle.

Ian Zhao
quelle
1
aber was ist, wenn Sie Ihre App auf einem physischen Gerät bereitstellen möchten ±!
Marwen Trabelsi
8

In meinem Fall war das Problem, mit dem ich konfrontiert war:

CodeSign-Fehler: Für den Produkttyp 'Unit Test Bundle' im SDK 'iOS 8.4' ist eine Codesignatur erforderlich.

Glücklicherweise hat das Ziel nichts implementiert, daher ist es eine schnelle Lösung, es zu entfernen.

Geben Sie hier die Bildbeschreibung ein

Javier Calatrava Llavería
quelle
2

Ich habe diesen Fehler erhalten, als ich xcodebuild über die Befehlszeile für Integrationstests auf dem CI meiner Arbeit ausgeführt habe. Ich habe es geschafft, es zum Laufen zu bringen, indem ich die Einstellung auf Projektebene auf Codesign gesetzt habe. Aus irgendeinem Grund wurde die Zieleinstellung ignoriert und auf die Projekteinstellung zurückgesetzt.

Pellet
quelle
2

Wenn mit den obigen Lösungen nichts funktioniert, befolgen Sie diese Schritte

Wählen Sie unter Ziele appnameTests unter "Info" aus.

Ändern Sie Folgendes

Bundle-ID: com.ProjectName. $ (PRODUCT_NAME: rfc1034identifier)

zu com.ProjectName.appname

Bundle-Name: $ (PRODUCT_NAME)

Bundle-Name: App-Name

Kompilieren und ausführen

nirvana74v
quelle
1

Ich löse das Problem, indem ich das "Bereitstellungsprofil" im selben Abschnitt ("Codesignatur") von "Automatisch" in "MyProvisioningProfile-Name" ändere.

Arniotaki
quelle
0

Hallo, ich habe heute das gleiche Problem. Nachdem ich die Antwort von "Spentak" gelesen hatte, versuchte ich, mein Ziel mit einem Code zu signieren, um es auf iOSDeveloper zu setzen, und es funktionierte immer noch nicht. Aber nachdem ich "Bereitstellungsprofil" in "Automatisch" geändert habe, wurde das Projekt erstellt und ohne Codesignaturfehler ausgeführt.

Sahan Maldeniya
quelle
0

Manchmal passiert dies, wenn Sie ein Projekt von Github oder anderen Tutorial-Sites von Drittanbietern herunterladen. Diese Apps sind normalerweise mit einer anderen Identität oder Firma / Name signiert. Wenn dies passiert, können Sie einfach ein neues xcode-Projekt erstellen, wenn Sie die Lösung nicht lösen können und kopieren Sie alle Header- und Implementierungsdateien in Ihr neues Projekt. Vergessen Sie auch nicht die Abhängigkeitsdateien ... wie die Framework-Dateien. Dies funktioniert bei mir.

BrainyMonkey
quelle