Firma del framework incorporato non funzionante in Xcode 11.2.1


18

Ho una piccola app di prova di concetto, in cui sto cercando di incorporare (e firmare) un framework (Alamofire) all'interno del mio framework (AequumPOCFramework.framework), tuttavia, quando provo a distribuire sul mio dispositivo, continua a dare me l'errore

.... non valido per l'uso nel processo utilizzando la Convalida libreria: il file mappato non ha cdhash, completamente senza segno? Il codice deve essere firmato almeno ad hoc.

Se provo solo a distribuire il mio framework, senza Alamofire incorporato, tutto funziona bene.

L'errore completo alla distribuzione sul mio iPhone è:

dyld: libreria non caricata: @ rpath / Alamofire.framework / Alamofire Riferimenti da: /private/var/containers/Bundle/Application/EDB697EB-EA15-4301-B4B6-A8FE1F0212BE/PocIOS.app/Frameworks/AequumPeasonFamework : nessuna immagine adatta trovata. Trovato: /private/var/containers/Bundle/Application/EDB697EB-EA15-4301-B4B6-A8FE1F0212BE/PocIOS.app/Frameworks/AequumPOCFramework.framework/Frameworks/Alamofire.framework/Alamofire / codice /containers/Bundle/Application/EDB697EB-EA15-4301-B4B6-A8FE1F0212BE/PocIOS.app/Frameworks/AequumPOCFramework.framework/Frameworks/Alamofire.framework/Alamofire) non valido per l'uso nel file log non utilizzato , completamente non firmato? Il codice deve essere firmato almeno ad hoc.

Che cosa sto facendo di sbagliato?

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine


2
Ho lo stesso problema qua. Attualmente sto scavando in questo problema. Tienimi aggiornato se hai già trovato una soluzione!
Mattk90,

2
Sono così felice di vedere che non sono l'unico ... Se lo scoprissi, te lo farò sapere. Inoltre, per favore fatemi sapere se fate qualche passo avanti.
geekyaleks,

Posso già dirti che ha a che fare con il processo di firma del framework. Quindi il problema è che Xcode afferma che la firma del framework incorporato è errata o non uguale a quella del proprio framework. Attualmente sto scavando più a fondo. Consulta questo articolo per una buona introduzione all'argomento: medium.com/@tally_b/more-unfolding-on-ios-signings-b6886236d7fc
Mattk90

2
Sì, qualcosa non va in questo processo di firma ... Per ora, sto includendo il mio framework Alamofire nel mio framework, lo firmo e lo incorporo lì, E lo firmo e lo incorporo nell'app stessa. Conosco questo tipo di schifo, ma questo mi permetterà almeno di continuare a scrivere codice, e speriamo che una vera soluzione venga fuori presto.
geekyaleks,

1
Grazie per una risposta molto completa ... Ho deciso che per ora,
firmerò

Risposte:


15

I framework nidificati non sono supportati su iOS (vedi technote ). L'unica soluzione legittima al momento è quella di collegare i framework "incorporati" direttamente a un'app di hosting.

* XCFramework è principalmente un'aggregazione di binari specifici della piattaforma e sfortunatamente non ha nulla a che fare con l'incorporamento di framework.


Qualche novità sul problema? Sto affrontando lo stesso problema: il mio framework A sta usando il mio framework B e ho bisogno che l'app finale includa solo il framework A e non sia in grado di accedere al framework B
Silvia

@Silvia Se hai assolutamente bisogno di nascondere B, allora credo che tu possa trasformarlo in Libreria statica.
berec,

0

Devi incorporare Alamofire anche nel tuo progetto.

Ad esempio, stai usando Cartagine e il Cartfile del tuo framework ha la libreria Alamofire. Devi usare lo stesso Carfile anche per la tua app principale. Inoltre, devi eseguire altre azioni di Cartagine (collegamento della libreria, aggiunta dello script di esecuzione) per l'app principale.


Sì, l'ho scoperto anche io, tuttavia, non era mio obiettivo esporre tutti i miei Frameworks allo sviluppatore finale. Speravo di avere tutto ben raggruppato all'interno di un framework (il mio framework). Grazie ..
geekyaleks,
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.