2015-02-03 10 views
7

Xcode 6.1.1La firma del codice Xcode6 è necessaria per i framework di riferimento?

Stiamo provando a firmare la nostra app per la distribuzione (o anche solo per testare sul dispositivo fisico). Abbiamo un quadro di riferimento nel nostro progetto. Abbiamo avuto l'impressione che dovremmo firmare la nostra app stessa (e abbiamo tutte le identità di firma del codice, i profili di provisioning, ecc. Configurati), ma non dovremmo firmare questo framework esterno, dato che non lo abbiamo scritto. Dovrebbe ottenere le credenziali di firma del codice dal progetto principale.

Tuttavia, ogni volta che proviamo a eseguire sul dispositivo fisico, questo framework di riferimento genera un errore di compilazione: "Errore CodeSign: la firma del codice è richiesta per il tipo di prodotto" Framework "in SDK" iOS 8.1 "".

Ciò significa che dobbiamo effettivamente firmare il codice?

In particolare, il framework che stiamo cercando di utilizzare è Alamofire.

risposta

4

penso che dipende da dove quei quadri provengono da:

  • Se sono tuoi (vale a dire libreria interna si sta bundling con il progetto), è necessario firmare loro.
  • Se provengono da un progetto open source che stai creando dalla fonte (ad esempio un pod di Cocoapods) dovrai firmarli.
  • Se provengono da uno sviluppatore di terze parti, dovrebbero essere già firmati.

C'è aa passo chiamato "Incorpora Frameworks" sotto "Build Fasi" della destinazione in cui è possibile specificare quali quadro da incorporare nel vostro pacco e cosa segno di codice:

Embed frameworks build phase

doesn Non importa se hanno già una firma: la tua sostituirà qualunque cosa ci fosse.

È sempre possibile controllare lo stato del certificato di un quadro con lo strumento da riga di comando codesign:

xcrun codesign --verify --verbose [MYFramework.framework/MYFramework]

e stampare l'entità di canto con:

xcrun codesign --display --verbose [MYFramework.framework/MYFramework]

+0

Con Xcode 7 questo doesn Sembra che funzioni ancora. Ho "Code Sign on Copy" ma il framework non riceve il codice firmato. La cosa strana è che so che il framework è stato firmato perché ho creato il codice in un progetto separato e l'ho firmato con il mio certificato "iPhone Developer". Inoltre, quando costruisco la mia app c'è un avvertimento: "salta la striscia di fase di copia, il codice binario è firmato". Quindi tutti pensano che sia firmato il codice, ma quando provo a caricare su App Store si lamenta che il framework NON è firmato con il codice e non accetterà il file binario. Catch-22, non so cosa fare ... – Bungles

+0

Non ho alcun problema con Xcode 7 al momento. Il framework deve essere firmato con lo stesso certificato dell'app, altrimenti iTunes si lamenterà. Se hai diversi certificati nel tuo portachiavi, "Sviluppatore iPhone" a volte ne sceglie di diversi per progetti diversi. – duhanebel

+0

Sembra che in XCode 8 non sia necessario codificare i framework dinamici se si desidera distribuirli da soli. Pertanto, puoi fare affidamento solo sulla firma finale durante l'intero processo di creazione dell'app. Ma ho sentito che ci sono alcuni problemi con i framework nidificati - potrebbero essere lasciati senza firma durante la fase di copia, e questo è un problema. – JustAMartin