Vou adicionar meus 2 centavos aqui (de uma maneira menos assustadora :-). Encontrei várias bibliotecas gordas de fornecedores que (por algum motivo) não funcionam da maneira normal adicionando-as ao Frameworksdiretório conforme documentado pela Apple. A única maneira que temos sido capazes de fazê-los trabalho é puxando a .framekworkdireita para o diretório do projeto e que liga a Embedded Frameworkse Link Binary with Librariesmanualmente em configurações de compilação. Isso parece ter funcionado sem problemas, no entanto, como em qualquer biblioteca gorda, eles vêm com as Simulator Architectures estranhas i386 e x86_64com as armarquiteturas.
Uma maneira rápida de verificar as arquiteturas na biblioteca de gorduras é
$ cd 'Project_dir/Project'
$ lipo -info 'YourLibrary.framework/YourLibExec`
Que deve cuspir uma saída algo como isto
Architectures in the fat file: YourLibrary.framework/YourLibExec are: i386 x86_64 armv7 arm64
Isso confirma que você precisará "aparar a gordura" (ou seja, i386& x86_64) da sua estrutura antes do upload do iTunesConnect Archival, o que não permite essas arquiteturas (pois não são compatíveis com o iOS).
Agora, todas as respostas (ou pelo menos algumas das respostas) aqui fornecem esses maravilhosos Scripts de Execução que, com certeza, funcionam muito bem, mas apenas se o seu Framework residir no Frameworksdiretório Agora, a menos que você seja um viciado em scripts de shell, esses scripts sem modificações não funcionarão para o cenário que explico acima. No entanto, existe uma maneira muito simples de se livrar das arquiteturas i386e x86_64do framework.
Abra o terminal no diretório do seu projeto.
Mude o diretório diretamente para .framekwork, como
cd YourProjectDir/YourProject/YourLibrary.framework
Execute a série de comandos conforme mostrado abaixo:
$ mv YourLibrary YourLibrary_all_archs
$ lipo -remove x86_64 YourLibrary_all_archs -o YourLibrary_some_archs
$ lipo -remove i386 YourLibrary_some_archs -o YourLibrary
$ rm YourLibrary_all_archs YourLibrary_some_archs
Algumas coisas a serem observadas aqui - lipo -removeprecisam ser feitas uma vez para cada arquitetura remover. liponão modifica o arquivo de entrada, apenas produz um arquivo, portanto, é necessário executar lipo -removeuma vez para x86_64e i386. Os comandos acima estão simplesmente fazendo isso renomeando o executável e, em seguida, removendo os arcos desejados e, em seguida, limpando os arquivos restantes. E é isso, agora você deve ver uma marca de seleção verde no upload do Application Loader Archival para o iTunesConnect.
Pontos a serem lembrados : As etapas acima devem ser feitas apenas durante a construção da produção, uma vez .frameworkque serão retiradas as arquiteturas do simulador, as construções nos simuladores deixarão de funcionar (o que é esperado). No ambiente de desenvolvimento, não há necessidade de retirar as arquiteturas do .frameworkarquivo, pois você deseja testar no Simulador e em um dispositivo físico. Se sua biblioteca de gorduras reside na Frameworkspasta do projeto, observe a resposta aceita.