I atualizado Xcode versão e quando usando bibliotecas estáticas externos, eu recebo essa mensagem:
ld: file é universal (3 fatias), mas não contém uma (n) fatia armv7s: / file / location para a arquitetura armv7s clang: error: o erro do linker falhou com o código de saída 1 (use -v para ver a chamada)
Existe alguma maneira de contornar isso e adicionar suporte à biblioteca se o desenvolvedor da biblioteca ainda não atualizou sua biblioteca?
ios
objective-c
xcode
ios6
static-libraries
Dafna Elazazer
fonte
fonte
Respostas:
Se você deseja remover o suporte para qualquer arquitetura, por exemplo, ARMv7-s no seu caso, use o menu Projeto -> Configurações de Construção -> remova a arquitetura de "arquiteturas válidas".
Você pode usar isso como uma solução temporária até que a biblioteca seja atualizada. Você precisa remover a arquitetura do seu projeto principal, não da biblioteca.
Como alternativa, você pode definir o sinalizador para "Build Active Architecture Only" da sua configuração de depuração como Sim. Deixe "Build Active Architecture Only" da configuração da versão em Não, apenas para que você receba um lembrete antes de liberar que você deve atualizar as bibliotecas de terceiros que estiver usando.
fonte
No architectures to compile for (ARCHS=i386, VALID_ARCHS=armv7).
pegaria o vinculador que só poderia resolver adicionandoi386
à lista de arquiteturas válidas.Simplesmente alternei entre "Build Active Architecture Only" e "Yes" nas configurações de construção do destino, e agora está tudo bem!
fonte
Tente remover armv7s da "Arquitetura válida" do projeto para lançar este problema para o telefone iOS 5.1
fonte
Acabei de publicar uma correção aqui que também se aplicaria neste caso - basicamente, você faz uma busca e substituição hexadecimal na sua biblioteca externa para fazê-la pensar que é o código do ARMv7s. Você deve poder
lipo
dividi-lo em três bibliotecas estáticas, duplicar / modificar o ARMv7 e usá-lolipo
novamente para montar uma nova biblioteca para todas as quatro arquiteturas.fonte
Suporte ao Flurry para iPhone 5 (ARMv7s) Como mencionei no post de ontem, o Flurry começou a trabalhar em uma versão do iOS SDK para dar suporte ao processador ARMv7s no novo iPhone 5 imediatamente após o anúncio na quarta-feira.
Fico feliz em dizer que o trabalho está concluído e o SDK agora está disponível no site.
fonte
use o menu Projeto -> Configurações de compilação ->
remova armv7s das "arquiteturas válidas". Se o padrão foi escolhido, exclua-o e adicione armv7.
fonte
Caso isso aconteça com alguém. Criei minha própria biblioteca para usar com um código de terceiros. Enquanto eu o construía para entregar, deixei acidentalmente meu iPhone 4S conectado e, portanto, o Xcode construiu minha biblioteca apenas para a arquitetura conectada, em vez de seguir as configurações do projeto. Remova todos os dispositivos conectados e reconstrua a biblioteca, vincule-a e tudo ficará bem.
Espero que ajude.
fonte
No meu caso, eu estava vinculando a uma biblioteca de terceiros um pouco antiga (desenvolvida para iOS 6, no XCode 5 / iOS 7). Portanto, eu tive que atualizar a biblioteca de terceiros, fazer uma Limpeza e Compilação, e agora ela é compilada com êxito.
fonte