dyld: Library not loaded: @rpath/libswiftCore.dylib
Referenced from: /var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/Stylist.app/Stylist
Reason: no suitable image found. Did find:
/private/var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/testapp.app/Frameworks/libswiftCore.dylib: mmap() errno=1 validating first page of '/private/var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/testapp.app/Frameworks/libswiftCore.dylib'
(lldb)
Estou recebendo esse erro ao criar no meu iPhone. Eu sou capaz de construir no simulador. Eu refiz todos os meus arquivos de provisão, mas ainda não consigo criar no meu iPhone. Meu Xcode é assim
Esse é um problema de estrutura ou um problema de assinatura? Isso não aconteceu no Xcode 6. Obrigado.
Respostas:
Eu tenho esse problema antes por acidentalmente revogar meu certificado. Todos os meus projetos rápidos têm esse problema. Existem duas maneiras de resolver isso:
Clique em Produto → Limpar (ou CMD+ Shift+ K)
Ou limpando manualmente os arquivos de configuração do Xcode:
fonte
Pesquisei muito sobre esse assunto. Existem vários motivos que causam esse problema.
Se você estiver enfrentando quando você e o código / biblioteca Swift em um projeto do Objectice C, tente a Solução 1-2-3
Se você estiver enfrentando esse problema com um novo projeto, a Swift Solution 4 será a melhor para você.
Solução 1 :
Reinicie o Xcode, depois o computador e o iPhone
Solução 2 :
Vá para as configurações de construção do projeto e defina o
Embedded Content Contains Swift
sinalizador de código como YESSolução 3:
Vá para as configurações de criação do projeto e adicione
@executable_path/Frameworks
à opção Caminhos de Pesquisa do RunpathSolução 4:
Se nenhuma das opções acima funcionar, isso deve acontecer. A Apple parece ser um certificado ninja, conforme mencionado no post da AirSign
Nos certificados InHouse
eles adicionaram um novo campo chamado
OU
então você deve recriar certificado e provisão
fonte
Depois de tentar muitas das outras soluções mencionadas, para minha eterna vergonha, fazer um Xcode-> Produto-> Limpar e reiniciar o Xcode, fez o truque.
fonte
Para mim, esse problema estava aparecendo devido ao certificado WWRD - o meu estava atualizado, mas por algum motivo foi definido como 'sempre confiar' em vez de 'usar o padrão do sistema', o que aparentemente faz a diferença.
fonte
Se você acidentalmente redefinir seu chaveiro, isso poderá ocorrer devido à falta de certificados da Apple no chaveiro. Segui a resposta sobre este para resolver o meu problema.
fonte
Remover o DerivedData fez o truque para mim.
Isso foi feito através do Xcode -> Preferências -> Locais -> clicou na seta atrás do caminho DerivedData e removeu toda a pasta DerivedData no Finder.
fonte
Window > Projects > My Project > Derived Data > Delete
fez o trabalho para mim.Ocorreu do meu lado ao criar um aplicativo na linha de comando via xcodebuild e xcrun PackageApplication, assinando o aplicativo com um perfil corporativo. Em nossos servidores de criação de IC, o certificado foi definido como "Sempre Confiar" no conjunto de chaves (selecione certificado -> Obter Informações -> Confiança -> "Usar Padrão do Sistema" pode ser alterado para "Sempre Confie"). Eu tive que configurá-lo novamente para "Usar padrão do sistema" para fazer isso funcionar. Inicialmente, definimos isso como "Sempre confie" para contornar os diálogos de chaves que aparecem após as atualizações de software e de certificado.
fonte
Correndo o risco de semear mais confusão, tive esse problema ao atualizar para o XC8.
Nenhuma dessas sugestões, nem de qualquer outro segmento, resolveu. O que funcionou foi remover TUDO da fase de criação "Vincular binário com bibliotecas", da fase de construção "Dependências de destino" e da configuração geral "Frameworks and Libraries vinculados".
Para sua informação, estou usando Carthage e foi adicionado
$(PROJECT_DIR)/Carthage/Build/tvOS
àFRAMEWORK_SEARCH_PATHS
configuração de compilação, para que minhas estruturas pudessem ser encontradas.O FYI 2, esses projetos e as estruturas, são 100% rápidos e as estruturas estão sendo construídas
DEFINES_MODULE = YES
.fonte
fonte
Citado de Perguntas e Respostas Técnicas QA1886 :
O aplicativo Swift falha ao tentar fazer referência à biblioteca Swift libswiftCore.dylib.
P: O que posso fazer sobre o erro de carregamento libswiftCore.dylib no console do meu dispositivo que ocorre quando tento executar meu aplicativo de idioma Swift?
R: Para corrigir esse problema, você precisará assinar seu aplicativo usando certificados de assinatura de código com a Unidade Organizacional do Assunto (UO) definida como seu ID da equipe. Todos os certificados corporativos e de desenvolvedor iOS padrão criados após o lançamento do iOS 8 têm o novo campo ID da equipe no local apropriado para permitir a execução de aplicativos no idioma Swift.
Geralmente, esse erro aparece no log do console do dispositivo com uma mensagem semelhante a uma das seguintes: [....] [deny-mmap] o arquivo mapeado não possui identificador de equipe e não é um binário da plataforma: / private / var / mobile / Contêineres / Pacote configurável / Aplicativo / 5D8FB2F7-1083-4564-94B2-0CB7DC75C9D1 / YourAppNameHere.app / Frameworks / libswiftCore.dylib
Os novos certificados são necessários ao criar um arquivo e empacotar seu aplicativo. Mesmo se você tiver um dos novos certificados, apenas a renúncia de um arquivo de aplicativo rápido existente não funcionará. Se ele foi criado com um certificado pré-iOS 8, você precisará criar outro arquivo morto.
Importante: tenha cuidado se precisar revogar e configurar um novo certificado de distribuição corporativa. Se você é um desenvolvedor corporativo interno, precisará tomar cuidado para não revogar um certificado de distribuição usado para assinar um aplicativo que qualquer um de seus funcionários corporativos ainda esteja usando como qualquer aplicativo assinado com esse certificado de distribuição corporativo parará de funcionar imediatamente. O acima descrito aplica-se apenas aos certificados de distribuição corporativa. É possível revogar certificados de desenvolvimento para desenvolvedores corporativos / iOS padrão.
Como os funcionários da AirSign declaram, o problema está no atributo OU ausente no campo de assunto do certificado interno.
Assunto: UID = 269J2W3P2L, CN = Distribuição do iPhone: Nome da empresa, OU = 269J2W3P2L, O = Nome da empresa, C = FR
Eu tenho um certificado de desenvolvimento corporativo, criando um novo resolvido o problema.
fonte
você provavelmente não tem o arco correto nessa lib, você pode fazer uma
file /private/var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/testapp.app/Frameworks/libswiftCore.dylib
e deve mostrar os arcos que estão nessa biblioteca ... Não tenho certeza de como você está vinculando, mas provavelmente não é o caminho certo (se libswiftcore for uma biblioteca de fábrica, se houver algum acréscimo na biblioteca, então provavelmente não foi compilado corretamente)
fonte
Eu também tive esse problema, no entanto, nada que eu tentei acima e em vários outros posts funcionou .. exceto por isso.
Para mim, alterei o identificador de pacote, pois temos um ID de pacote diferente para distribuição versus desenvolvimento.
Meu hardware é permitido nesta provisão e minha conta de equipe é válida, mas estava lançando o erro acima em alguma outra estrutura.
Acontece que eu precisava remover completamente a versão antiga do aplicativo do meu telefone. E não apenas excluindo-o da maneira padrão.
Solução:
Evidentemente, ao instalar o mesmo aplicativo na mesma equipe com um ID de pacote diferente, se você não estiver começando completamente do zero, existem algumas referências a estruturas que ficam confusas.
Espero que isso ajude alguém.
fonte
Acabei de limpar o projeto e
Clean Build Folder
por alt Menu do produtofonte
As etapas abaixo foram bem-sucedidas.
1) Na biblioteca dinâmica, o nome da instalação tinha que ser "@loader_path"
2) No projeto principal, o caminho de pesquisa do caminho de execução deve ser "@loader_path" e "@ loader_path / Frameworks"
3) Na exibição de chaves usada -> mostre os certificados expirados e remova tudo.
4) Excluiu o certificado de distribuição e reinstalou.
5) Faça o download do developer.apple.com/certificationauthority/AppleWWDRCA.cer e instalado.
fonte
Recentemente, enfrentei esse problema. Eu tentei todas as soluções possíveis, mas nada funcionou. No final, acabei de sair do Xcode, removi os certificados no chaveiro e instalei tudo novo e reiniciei o mac. Felizmente, funcionou como charme :)
fonte
Eu tive o mesmo problema e consegui corrigir o download novamente do
WWDR (Apple Worldwide Developer Relations Certification Authority)
. Faça o download aqui :e defina como Sempre confiar no chaveiro. Mudando para
Use System Default
funciona para mim, espero que isso ajude você
fonte
No meu caso, o chaveiro está mostrando o certificado como não confiável. Para resolver esse problema, configurei as opções de confiança do certificado como "Sempre confio". Definir o certificado como "Sempre confiar" foi a principal causa do travamento. Não consegui instalar o aplicativo no dispositivo. Resolvido isso, definindo a opção de confiança como "Padrões do sistema" em vez de "Sempre confiar". Funcionou para mim.
fonte
Você vê os mesmos sintomas se estiver trabalhando no Xamarin Studio e estiver fazendo referência a uma biblioteca portátil para a qual precisa fazer a isca PCL e mudar o truque. Isso ocorre se o projeto de referência estiver desatualizado em relação à biblioteca referenciada. Descobri que atualizei minha biblioteca comum para uma estrutura mais nova, atualizei meus pacotes, mas não atualizei meus pacotes iOS para corresponder. A atualização dos pacotes resolveu esse erro para mim.
fonte
Você ainda pode obter esse problema depois de tentar a resposta @Jieyi Hu. pode parecer fixo, mas se vier novamente (possivelmente no xCode 9).
No entanto, esta solução alternativa parece funcionar (se aplica aos Cocoapods 1.5.x):
abra o Podfile no seu projeto e adicione:
post_install do |installer| installer.pods_project.build_configurations.each do |config| config.build_settings.delete('CODE_SIGNING_ALLOWED') config.build_settings.delete('CODE_SIGNING_REQUIRED') end end
atualização do pod
Fontes:
https://github.com/evgenyneu/Cosmos/issues/105
https://github.com/Skyscanner/SkyFloatingLabelTextField/issues/201#issuecomment-381915911
Obrigado @ Cédric
fonte
Você pode regenerar seu certificado e reiniciar seu iPhone.
Este trabalho para mim, espero que isso ajude você.
fonte
Para resolver o problema, verifique meus chaveiros locais. Mantenha o login.keychain tem o certificado certo
fonte
Você precisa definir o certificado (apenas o certificado e não o perfil de provisionamento) para cada estrutura dinâmica que você está vinculando (direta ou indiretamente) em seu projeto
fonte
No meu caso, depois de excluir toda a certificação criada pelo Xcode e baixada. Deixe o xcode 8.1 gerenciar a certificação do aplicativo, funciona bem !!! Espero que isso possa ajudar alguém.
fonte
Encontrei esse problema SOMENTE no simulador. Parece estar relacionado a alguns direitos inválidos em nosso aplicativo, mas o problema não aparece quando executamos em um dispositivo.
fonte
Eu resolvi usando esses truques.
Passo 1:
Vá para as configurações de construção do projeto e adicione @ executable_path / Frameworks à opção Runpath Search Paths
Passo 2:
Vá para as configurações de construção de destino e adicione @ executable_path / Frameworks à opção Runpath Search Paths e Paths de pesquisa da estrutura.
Etapa 3:
Fazendo download novamente do WWDR (Autoridade de Certificação de Relações com o Desenvolvedor da Apple em todo o mundo), defina como Usar padrão do sistema como opção.
Passo 4:
Excluir todos os dados derivados usando o Terminal
rm -rf ~ / Biblioteca / Desenvolvedor / Xcode / DerivedData / *
Etapa 5 :
Exclua todos os certificados e reinstale-o no Keychain. Eu ativei a opção Usar padrão do sistema.
Etapa 6:
Reinicie o Xcode.
fonte
enfrentou o mesmo problema
fonte
Eu me deparei com esse problema com o XCode 9. Nenhuma das opções acima deu certo. Isso fez o truque para mim:
Project > Build Settings > Swift Compiler - Search Path: Setting "Import Paths"
para$(PROJECT_DIR)
(recursivo)fonte
Isso resolveu meu erro
Fazendo download novamente do WWDR (Autoridade de Certificação de Relações com o Desenvolvedor da Apple em todo o mundo), defina como Usar padrão do sistema como opção.
fonte
No meu caso, foi um problema com um dos pods que eu estava usando. Acabei removendo esse pod e colocando o código dele no meu projeto manualmente.
fonte
insira a descrição da imagem aqui
Eu tenho um problema semelhante, que detalha informações como a primeira imagem.
Minha solução é que alterne a certificação sempre confie para usar os padrões do sistema. assim como: insira a descrição da imagem aqui insira a descrição da imagem aqui
fonte