La firma del codice è necessaria per il tipo di prodotto Unit Test Bundle in SDK iOS 8.0


128

ottenere

La firma del codice è necessaria per il tipo di prodotto "Unit Test Bundle" nell'SDK "iOS 8.0"

Il mio target dell'app è la firma del codice, ma il mio target del test non lo è. Ho acquistato un nuovo computer, creato un nuovo certificato di sviluppo dal computer, aggiornato di conseguenza il profilo di provisioning, installato entrambi, ma non riesco a superare questo errore di firma del codice.

Qualche modo di cancellare tutti i certificati / profili localmente in modo da poterlo reinstallare?

Probabilmente una specie di bug.


Ho avuto un errore simile - la mia correzione era quella di andare nelle impostazioni di compilazione e selezionare i profili di provisioning, anziché selezionarli automaticamente.
scb998,

Risposte:


129

Il problema è che il progetto è sotto il controllo del codice sorgente e ogni volta che estraggo il file .xcodeproj viene aggiornato. E poiché il mio profilo di provisioning è diverso da quello nel controllo del codice sorgente, l'obiettivo Test unità passa automaticamente a "Non codificare il segno". Quindi devo semplicemente impostare il profilo lì dopo ogni pull git.

Apparentemente se si distribuisce su un dispositivo, se esiste un target di unit test, deve essere firmato con codice.

passi:

1) Cambia target in target test (AppnameTests)

inserisci qui la descrizione dell'immagine

2) Assicurarsi che "Identità di firma codice" NON sia "Non firmare codice". Scegli un profilo con cui firmare

inserisci qui la descrizione dell'immagine

Questo è tutto ciò che ho dovuto cambiare per farlo funzionare.


sto affrontando lo stesso problema menzionato nella domanda precedente ma non sono in grado di capire come risolverlo e ho pubblicato una domanda relativa allo stesso. stackoverflow.com/questions/27312745/…
Neal

Potresti per favore dirmi un processo graduale su come farlo.
Neal,

Ha avuto il problema in Xcode 8. La risoluzione non era identica alla tua, ma vicina. Grazie per avermi mostrato la strada!
user3259235

Inoltre, oltre a impostare "Identità di firma del codice", potrebbe essere necessario impostare anche il "Team di sviluppo".
bitsand

100

Ho risolto il problema (temporaneamente) andando su Modifica schema, quindi nella sezione Build, rimuovendo il mio target di test unitario dall'essere richiamato in "Esegui".


1
Buona pesca! Perché dici temporaneamente ? Mi sembra una soluzione ragionevole. Hai inviato l'app allo store?
mokagio,

Non ci sono problemi con l'invio dell'app all'App Store. Ho detto "temporaneamente" perché immaginavo che ci fosse una soluzione più permanente possibile armeggiando con la firma del codice, ma questa era la soluzione rapida e senza problemi.
ZS

2
Figo, grazie. Mi sembra una buona soluzione, l'obiettivo del test unitario non dovrebbe funzionare comunque. +1
mokagio il

Puoi spiegarmi più in dettaglio? vuoi dire che devo "costruire"? e non capisco "rimuovendo il mio unit test dall'essere invocato in Run"
LKM

66

Gli altri consigli qui non mi hanno aiutato, ma ho risolto questo errore andando a Product > Scheme > Edit Scheme. Quindi ho fatto clic Buildsul lato sinistro e deselezionato tutte le caselle di controllo accanto AppNameTests. Sto usando XCode 6.3

inserisci qui la descrizione dell'immagine


@Almo Non deselezionare le caselle sotto "Test", ma deselezionare tutto (che è possibile deselezionare) nella riga etichettata APPNAMEtest. Includerò uno screenshot nella mia risposta per chiarire.
Olivia Stork

1
L'ho fatto e ho deselezionato tutto tranne Test. Si è scoperto che ho dovuto rimuovere un file .plist per farlo smettere di provare a firmare il codice con il test. Il mio progetto crea una libreria statica, quindi nessuno di questi deve essere codificato.
Almo,

1
Ah ok Bene, sembra che ci siano molte ragioni per cui questo problema può essere causato e altrettanti modi per risolverlo. Se nessun altro ha menzionato la tua soluzione, potresti considerare di pubblicarla come un'altra possibile risposta.
Olivia Stork,

3
@huggie ¯ \ _ (ツ) _ / ¯ Benvenuti nella programmazione iOS!
Olivia Stork,

1
@OliviaStork mi hai obbligato. grazie mille per avermi salvato il lavoro.
Anurag Shrivastava,

29

L'ho risolto selezionando manualmente un profilo di provisioning nelle impostazioni di build per la destinazione del test.

Prova impostazioni target -> Crea impostazioni -> Firma codice -> Identità segno codice. In precedenza, era impostato su "Non codificare il segno".


La selezione del profilo di provisioning ha funzionato esplicitamente per me, grazie.
Mike Weller,

Assicurati anche che il filtro "Tutto" sia selezionato in alto, non "Base".
Marty,

13

Inoltre, se si imposta il dispositivo di destinazione della build, il problema scompare durante il test e il debug. Il codice firmato è necessario solo quando si tenta di distribuire l'app su un dispositivo effettivamente fisicoFigura

Ho cambiato il mio da "myIphone" al simulatore iPhone 6 Plus e risolve il problema mentre sto sviluppando l'app.


1
ma cosa succede se VUOI distribuire la tua app su un dispositivo fisico ±!
Marwen Trabelsi

8

Nel mio caso il problema che ho dovuto affrontare era:

Errore CodeSign: la firma del codice è richiesta per il tipo di prodotto 'Unit Test Bundle' in SDK 'iOS 8.4'

Fortunatamente, l'obiettivo non ha implementato nulla, quindi una soluzione rapida è rimuoverlo.

inserisci qui la descrizione dell'immagine


2

Stavo ottenendo questo errore quando eseguivo xcodebuild dalla riga di comando per i test di integrazione sul CI del mio lavoro. Sono riuscito a farlo funzionare impostando l'impostazione del livello di progetto su codesign. Per qualche motivo, l'impostazione di destinazione veniva ignorata e ripristinata l'impostazione del progetto.


2

Se nulla funziona dalle soluzioni precedenti, seguire questi passaggi

Da Targeting selezionare appnameTest in "Informazioni"

Modifica seguente

Identificatore del pacchetto: com.ProjectName. $ (PRODUCT_NAME: rfc1034identifier)

com.ProjectName.appname

Nome del pacchetto: $ (PRODUCT_NAME)

Nome del pacchetto: nome app

Compila ed esegui


1

Risolvo il problema modificando il "Profilo di provisioning" nella stessa sezione ("Firma codice") da Automatico a "Nome profilo utente"


0

Ciao, oggi ho lo stesso problema. Dopo aver letto la risposta di "Spentak" ho provato a fare la firma del codice del mio obiettivo per impostarlo su iOSDeveloper, e ancora non ha funzionato. Ma dopo aver cambiato "Profilo di provisioning" in "Automatico", il progetto è stato creato ed eseguito senza errori di firma del codice.


0

A volte questo accade quando scarichi un progetto da github o altri siti tutorial di terze parti. Queste app sono generalmente firmate con un'identità o una società / nome diversi. Quando ciò accade, se non riesci a risolvere la soluzione, crea semplicemente un nuovo progetto xcode e copia tutti i file di intestazione e implementazione nel tuo nuovo progetto. Inoltre, non dimenticare i file delle dipendenze ... come i file del framework. Questo funziona per me.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.