La signature du framework intégré ne fonctionne pas dans Xcode 11.2.1

18

J'ai une petite application de preuve de concept, où j'essaie d'intégrer (et de signer) un cadre (Alamofire) à l'intérieur de mon cadre (AequumPOCFramework.framework), cependant, lorsque j'essaie de déployer sur mon appareil, il continue de donner moi l'erreur

.... non valide pour une utilisation dans le processus utilisant la validation de bibliothèque: le fichier mappé n'a pas de cdhash, complètement non signé? Le code doit être au moins signé de manière ad hoc.

Si j'essaie simplement de déployer mon propre framework, sans avoir Alamofire intégré, tout fonctionne bien.

L'erreur complète lors du déploiement sur mon iphone est:

dyld: Bibliothèque non chargée: @ rpath / Alamofire.framework / Alamofire Référencé depuis: /private/var/containers/Bundle/Application/EDB697EB-EA15-4301-B4B6-A8FE1F0212BE/PocIOS.app/Frameworks/AequumPOCFrameworkPF : aucune image appropriée trouvée. A trouvé: /private/var/containers/Bundle/Application/EDB697EB-EA15-4301-B4B6-A8FE1F0212BE/PocIOS.app/Frameworks/AequumPOCFramework.framework/Frameworks/Alamofire.framework/Alamofire: signature de code dans ( /containers/Bundle/Application/EDB697EB-EA15-4301-B4B6-A8FE1F0212BE/PocIOS.app/Frameworks/AequumPOCFramework.framework/Frameworks/Alamofire.framework/Alamofire) non valide pour une utilisation dans le processus à l'aide de la validation de bibliothèque: msh , complètement non signé? Le code doit être au moins signé de manière ad hoc.

Qu'est-ce que je fais mal?

entrez la description de l'image ici

entrez la description de l'image ici

entrez la description de l'image ici

entrez la description de l'image ici

geekyaleks
la source
2
Avoir le même problème ici. En train de creuser ce problème. Tenez-moi au courant si vous avez déjà trouvé une solution!
Mattk90
2
Je suis tellement content de voir que je ne suis pas le seul ... Si je le découvre, je vous le ferai savoir. Veuillez également me faire savoir si vous progressez.
geekyaleks
Je peux déjà vous dire que cela a à voir avec le processus de signature du cadre. Le problème est donc que Xcode dit que la signature du cadre intégré est incorrecte ou pas la même que celle de votre propre cadre. Je suis en train de creuser plus profondément. Consultez cet article pour une bonne introduction au sujet: medium.com/@tally_b/more-unfolding-on-ios-signings-b6886236d7fc
Mattk90
2
Oui, quelque chose ne va pas avec ce processus de signature ... Pour l'instant, j'inclus mon framework Alamofire dans mon propre framework, je le signe et je l'intègre là-bas, ET je le signe et l'intègre dans l'application elle-même. Je sais que ce genre de merde, mais cela me permettra au moins de continuer à coder, et j'espère qu'un vrai correctif sortira bientôt.
geekyaleks
1
Merci pour une réponse très complète ... J'ai décidé que pour l'instant, je vais juste signer le cadre "embarqué / embarqué" dans l'application elle-même, j'espère qu'une autre réponse apparaîtra dans un avenir proche ...
geekyaleks

Réponses:

15

Les frameworks imbriqués ne sont pas pris en charge sur iOS (voir les notes techniques ). La seule solution légitime pour le moment est de lier directement des frameworks "embarqués" à une application d'hébergement.

* XCFramework est principalement une agrégation de binaires spécifiques à la plate-forme et n'a malheureusement rien à voir avec les cadres d'intégration.

berec
la source
Des nouvelles du problème? Je suis confronté au même problème: mon framework A utilise mon framework B et j'ai besoin de l'application finale pour inclure uniquement le framework A et ne pas pouvoir accéder au framework B
Silvia
@Silvia Si vous devez absolument masquer B, je pense que vous pouvez le transformer en bibliothèque statique.
berec
0

Vous devez également intégrer Alamofire à votre projet.

Par exemple, vous utilisez Carthage et le Cartfile de votre framework contient la bibliothèque Alamofire. Vous devez également utiliser le même Carfile pour votre application principale. En outre, vous devez effectuer d'autres actions Carthage (liaison de bibliothèque, ajout d'un script d'exécution) pour l'application principale.

Yusuf Demirci
la source
Oui, je l'ai également découvert, cependant, mon objectif n'était pas d'exposer tous mes Frameworks au développeur final. J'espérais avoir tout joliment regroupé à l'intérieur d'un cadre (mon cadre). Merci ..
geekyaleks