Motivo: nenhuma imagem adequada encontrada [fechada]

129
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

insira a descrição da imagem aqui

Esse é um problema de estrutura ou um problema de assinatura? Isso não aconteceu no Xcode 6. Obrigado.

Satsuki
fonte
Resolvi esse problema (depois de encontrar um monte de becos sem saída no SO) alterando as permissões no
certificado de
Atualização para iOS 13.3.1: se você tem esse iOS azarado e tenta instalar um aplicativo com estruturas aninhadas, saiba que é um bug - atualize para 13.4.1 ou posterior, ainda está resolvido
iago849 17/04

Respostas:

389

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:

rm -rf "$(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang/ModuleCache"
rm -rf ~/Library/Developer/Xcode/DerivedData
rm -rf ~/Library/Caches/com.apple.dt.Xcode
Jieyi Hu
fonte
1
use-os no terminal
Jieyi Hu 23/09/2015
Sem problemas. Pegar minha resposta, se você gosta :)
Jieyi Hu
10
Acho Alt + Limpo irá fazê-lo também
jjxtra
9
A limpeza do projeto funcionou para mim: SHIFT + CMD + K
B-Rad
9
Você está usando um ID Apple não desenvolvedor para instalar o aplicativo no seu telefone? Parece que o iOS 13.3.1 quebrou aplicativos instalados com IDs da Apple gratuitos, mas apenas se eles contiverem estruturas incorporadas. Se for possível vincular todas as suas dependências como bibliotecas estáticas, e não como estruturas (por exemplo, se você estiver usando Cocoapods, poderá remover use_frameworks! Do seu Podfile), isso deve resolver o problema por enquanto.
Kashif Rabbani
30

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 Swiftsinalizador de código como YES

Solução 3:

Vá para as configurações de criação do projeto e adicione @executable_path/Frameworksà opção Caminhos de Pesquisa do Runpath

Soluçã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

Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, O=Company Name, C=FR

eles adicionaram um novo campo chamado OU

Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, OU=269J2W3P2L, O=Company Name, C=FR

então você deve recriar certificado e provisão

Murrekatt
fonte
Obrigado eu fiz Solução 1 ~ 3 e não work.I recriaram um certificado e fornecimento e ele não funciona bem
Satsuki
1
Eu estava enfrentando a mesma mensagem de erro solicitada originalmente pela Satsuki. Solução 4 fez o truque para mim. Eu tive problemas com o Realm Framework, mas apenas se eu tentasse criar um arquivo morto do meu aplicativo e depois instalá-lo através do iTunes (caso contrário, a implantação direta no dispositivo seria fluente).
Peter Ivanics
4 fez isso por mim também! Aqui está um link para a postagem da AirSign: airsignapp.com/…
pshah
2
Como edito o certificado InHouse?
Al Wang
1
1 e 2 não funcionou para mim. Janela -> projeto, excluir dados derivados corrigidos. Xcode inferior, de buggy>. <
Cymric
27
Xcode->Product->Clean + Xcode Restart

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.

Sean Vikoren
fonte
2
Eu também fiz muitas das etapas mencionadas anteriormente, como obter o WWRD, verificar o percurso, etc. Então, um grande obrigado!
Joe Famme 17/02
Eu tive que reiniciar o Xcode, depois de várias limpezas falharem. Isto parece óbvio demais de uma solução considerando o quão difícil a Apple parece fazer tudo o resto
Jeffrey Kern
19

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.

Warblr
fonte
4
+1 para o problema do certificado. Tentei absolutamente TUDO, mas notei que meu certificado de desenvolvedor estava definido como "Sempre Confie" no chaveiro. Mudar para "Usar padrão do sistema", como você diz, funcionou perfeitamente. Obrigado!
tylermilner
1
Tentei de tudo e isso fez isso. Sério Por que não pode maçã corrigir isso como parte do Xcode ....
UKDataGeek
1
extremamente importante: depois de alterar o acesso certificado para "padrões do sistema de uso" limpar profundamente o projeto (cmd + Alt + Shift + K)
Roman Slyepko
2
Salvo meu dia mano! graças
andrea.rinaldi
Penso que esta é a solução final para este problema. Eu também tentei quase todas as soluções disponíveis na Internet, mas nenhuma delas funciona para mim, exceto isso. Ótima solução ...
Er. Vihar
17

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.

Eu tive o mesmo problema e consegui corrigir o download novamente da WWDR (Autoridade Certificadora de Relações com Desenvolvedores da Apple). Faça o download aqui: http://developer.apple.com/certificationauthority/AppleWWDRCA.cer

user1742302
fonte
1
corrigi-lo depois de transferir o Xcode e meu perfil de usuário de um Mac para outro.
RTasche
1
Funciona para o meu caso, obrigado!
Alice Chan
1
OBRIGADO SENHOR, VOCÊ É UM VIDRO
Josh O'Connor
Obrigado, demorei tanto para encontrar isso.
falastrão
14

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.

NBoymanns
fonte
obrigado, trabalhou para mim, cordova + xcode 7.2
jujule
1
Window > Projects > My Project > Derived Data > Deletefez o trabalho para mim.
Michael Waterfall
Trabalhou para mim no Xcode 10.1. Tudo funcionou bem, mas em um dia feliz o Xcode começou a mostrar esses erros. Obrigado.
Zhebzhik Babich 7/03/19
5

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.

Jagveer Singh
fonte
3

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_PATHSconfiguraçã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.

daimler250v8
fonte
DEFINES_MODULE = SIM trabalhou para mim. Meu projeto continha o objetivo C e o Swift.
Jason Huh
3
  1. Remova o aplicativo do dispositivo
  2. Limpe o projeto ( CMD+ SHift+ K)
  3. Compilar / executar no dispositivo
Maxim Firsoff
fonte
2

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

Dyld Error Message:
  Library not loaded: @rpath/libswiftCore.dylib

Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000001, 0x0000000120021088
Triggered by Thread: 0

Referenced from: /private/var/mobile/Containers/Bundle/Application/C3DCD586-2A40-4C7C-AA2B-64EDAE8339E2/TestApp.app/TestApp
Reason: no suitable image found. Did find:
/private/var/mobile/Containers/Bundle/Application/C3DCD586-2A40-4C7C-AA2B-64EDAE8339E2/TestApp.app/Frameworks/libswiftCore.dylib: mmap() error 1 at address=0x1001D8000, size=0x00194000 segment=__TEXT in Segment::map() mapping /private/var/mobile/Containers/Bundle/Application/C3DCD586-2A40-4C7C-AA2B-64EDAE8339E2/TestApp.app/Frameworks/libswiftCore.dylib
Dyld Version: 353.5

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.

AG
fonte
alguém pode explicar isso em inglês?
UKDataGeek
1

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)

Grady Player
fonte
Olá, obrigado pela sua resposta, eu tenho uma pergunta. Na resposta que você disse e deve mostrar os arcos que estão nessa biblioteca. como você mostra isso
Satsuki 23/09
o comando é chamado de arquivo ... mas eu acho que você precisa para encontrar a versão local no seu Mac, em vez do caminho no telefone ...
Grady Jogador
1

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:

  1. Verifique se o telefone de destino está conectado
  2. no menu xcode, clique em [Window> Devices]
  3. selecione o dispositivo de destino no menu do lado esquerdo.
  4. À direita, haverá uma lista de aplicativos no seu dispositivo. Encontre o aplicativo que você está tentando testar e remova.

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.

Christopher Wade Cantley
fonte
Meu ID do pacote não foi alterado. E qualquer uma das sugestões acima não corrigiu as coisas (-> Limpar; exclusão manual; reinicie tudo; e manualmente remove o aplicativo do iPhone todas as vezes; e mais). Apenas seguir as sugestões de Christopher corrigidas pensa instantaneamente sem limpar nada novamente. [iPhone 5; iOS 9.3.5; Xcode 7.3]
marco
1

Acabei de limpar o projeto e Clean Build Folderpor alt Menu do produto

Edward Ashak
fonte
Atalho para a limpeza de pasta de compilação: alt + cmd-shift-k
Ori
1

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.

lança preta
fonte
1

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 :)

PARE
fonte
1

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 paraUse System Default

funciona para mim, espero que isso ajude você

voidxin
fonte
1

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.

Roshni
fonte
1

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.

O senador
fonte
1

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):

  1. limpe seu projeto
  2. fechar Xcode e excluir DerivedData
  3. 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

  4. atualização do pod

Fontes:

https://github.com/evgenyneu/Cosmos/issues/105

https://github.com/Skyscanner/SkyFloatingLabelTextField/issues/201#issuecomment-381915911

Obrigado @ Cédric

Pranavan Sp
fonte
0

Você pode regenerar seu certificado e reiniciar seu iPhone.

Este trabalho para mim, espero que isso ajude você.

Joffrey Outtier
fonte
Por favor, explique como você fez isso.
TDM
0

Para resolver o problema, verifique meus chaveiros locais. Mantenha o login.keychain tem o certificado certo

Bill Xie
fonte
Bem-vindo ao Stack Overflow! Isso não fornece uma resposta para a pergunta. Para criticar ou solicitar esclarecimentos a um autor, deixe um comentário abaixo da postagem - você sempre pode comentar em suas próprias postagens e, depois de ganhar reputação suficiente , poderá comentar em qualquer post. Se você tiver uma pergunta relacionada, mas diferente, faça uma nova pergunta referenciando esta, se isso ajudar a fornecer contexto.
ddb 29/07
0

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 projetoinsira a descrição da imagem aqui

Mayur Kothawade
fonte
0

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.

shujucn
fonte
0

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.

bkbeachlabs
fonte
0

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.

insira a descrição da imagem aqui

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.

AG
fonte
0

enfrentou o mesmo problema

  1. meu certificado de desenvolvedor expirou, então criei um novo certificado de desenvolvedor e baixei
  2. limpar e reiniciar o xcode isso funciona para mim
Midhun Narayan
fonte
0

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)

ggs
fonte
0

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.

DRP
fonte
0

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.

radthemad4
fonte