A assinatura da estrutura incorporada não está funcionando no Xcode 11.2.1

18

Eu tenho um pequeno aplicativo de prova de conceito, no qual estou tentando incorporar (e assinar) uma estrutura (Alamofire) dentro da minha estrutura (AequumPOCFramework.framework), no entanto, quando tento implantar no meu dispositivo, ele continua fornecendo eu o erro

.... não é válido para uso em processo usando a Validação de Biblioteca: o arquivo mapeado não tem cdhash, completamente sem sinal? O código deve ter pelo menos assinatura ad-hoc.

Se eu apenas tentar implantar minha própria estrutura, sem a Alamofire incorporada nela, tudo funcionará bem.

O erro completo ao implantar no meu iphone é:

dyld: Biblioteca não carregada: @ rpath / Alamofire.framework / Alamofire Referenciado por: /private/var/containers/Bundle/Application/EDB697EB-EA15-4301-B4B6-A8FE1F0212BE/PocIOS.app/Frameworks/AequumPOCActumFOCeworkwork.framework : nenhuma imagem adequada encontrada. Localizou: /private/var/containers/Bundle/Application/EDB697EB-EA15-4301-B4B6-A8FE1F0212BE/PocIOS.app/Frameworks/AequumPOCFramework.framework/Frameworks/Alamofire.framework/Alamofire: assinatura de código em (/ private var /containers/Bundle/Application/EDB697EB-EA15-4301-B4B6-A8FE1F0212BE/PocIOS.app/Frameworks/AequumPOCFramework.framework/Frameworks/Alamofire.framework/Alamofire) não é válido para uso no processo usando a Validação da Biblioteca: , completamente sem sinal? O código deve ter pelo menos assinatura ad-hoc.

O que estou fazendo errado?

insira a descrição da imagem aqui

insira a descrição da imagem aqui

insira a descrição da imagem aqui

insira a descrição da imagem aqui

geekyaleks
fonte
2
Estou tendo o mesmo problema aqui. Atualmente investigando esse problema. Mantenha-me informado se você já encontrou uma solução!
Mattk90
2
Estou tão feliz por ver que não sou o único .... Se eu descobrir, eu o informarei. Além disso, entre em contato se você fizer algum progresso.
Geekyaleks #
Eu já posso lhe dizer que isso tem a ver com o processo de assinatura da estrutura. Portanto, o problema é que o Xcode diz que a assinatura da estrutura incorporada está errada ou não é a mesma que a sua própria estrutura. Atualmente estou cavando mais fundo. Confira este artigo para uma boa introdução ao tema: medium.com/@tally_b/more-unfolding-on-ios-signings-b6886236d7fc
Mattk90
2
Sim, algo está errado com esse processo de assinatura ... Por enquanto, estou incluindo minha estrutura Alamofire na minha própria estrutura, assino e incorpore-a lá E assine e incorpore-a no próprio aplicativo. Eu sei que esse tipo de coisa é péssima, mas isso me permitirá pelo menos continuar codificando, e espero que uma correção real seja lançada em breve.
geekyaleks
11
Obrigado por uma resposta muito abrangente ... Decidi que, por enquanto, assinarei a estrutura "incorporada / incorporada" no próprio aplicativo, espero que outra resposta apareça no futuro próximo ...
geekyaleks

Respostas:

15

Estruturas aninhadas não são suportadas no iOS (consulte as notas técnicas ). A única solução legítima no momento é vincular estruturas "incorporadas" diretamente a um aplicativo de hospedagem.

* O XCFramework é principalmente uma agregação de binários específicos da plataforma e infelizmente não tem nada a ver com estruturas de incorporação.

berec
fonte
Alguma novidade sobre o assunto? Estou enfrentando o mesmo problema: minha estrutura A está usando minha estrutura B e preciso que o aplicativo final inclua apenas a estrutura A e não consiga acessar a estrutura B
Silvia
@ Silvia Se você absolutamente precisa esconder B, acredito que pode transformá-lo em Static Library.
berec 10/04
0

Você também deve incorporar a Alamofire ao seu projeto.

Por exemplo, você está usando Carthage e o Cartfile de sua estrutura possui a biblioteca Alamofire. Você também deve usar o mesmo Carfile para seu aplicativo principal. Além disso, você deve executar outras ações do Carthage (vinculando a biblioteca, adicionando o script de execução) ao aplicativo principal.

Yusuf Demirci
fonte
Sim, descobri que, no entanto, não era meu objetivo expor todos os meus Frameworks ao desenvolvedor final. Eu esperava ter tudo bem agrupado dentro de uma estrutura (minha estrutura). Obrigado ..
geekyaleks