Estou tentando executar um aplicativo Swift no meu iPhone 4s. Funciona bem no simulador e meu amigo pode executá-lo com sucesso no iPhone 4s. Eu tenho o iOS 8 e o lançamento oficial do Xcode 6.
eu tentei
- Reiniciando o Xcode, iPhone, computador
- Limpeza e reconstrução
- Revogando e criando novo perfil de certificado / provisão
- Caminhos de pesquisa de caminho de execução é
$(inherited) @executable_path/Frameworks
- O conteúdo incorporado contém que o código Swift é 'Sim'
- Identidade de assinatura de código é desenvolvedor
Abaixo está o erro na íntegra
dyld: Library not loaded: @rpath/libswiftCore.dylib
Referenced from: /private/var/mobile/Containers/Bundle/Application/LONGSERIALNUMBER/AppName.app/AppName
Reason: no suitable image found. Did find:
/private/var/mobile/Containers/Bundle/Application/LONGSERIALNUMBER/AppName.app/Frameworks/libswiftCore.dylib: mmap() error 1 at
address=0x008A1000, size=0x001A4000 segment=__TEXT in Segment::map() mapping
/private/var/mobile/Containers/Bundle/Application/LONGSERIALNUMBER/APPLICATION_NAME/Frameworks/libswiftCore.dylib
Respostas:
Para mim, nenhuma das soluções anteriores funcionou. Descobrimos que há um sinalizador "Sempre incorporar bibliotecas padrão do Swift" nas Configurações da compilação que precisa ser definido como YES. Não era por padrão!
Build Settings > Always Embed Swift Standard Libraries
Depois de definir isso, limpe o projeto antes de criar novamente.
Para os leitores interessados, algumas explicações A parte mais importante é:
A bandeira foi chamada anteriormente
Embedded Content Contains Swift Code
fonte
Surpreendentemente, tudo o que fiz foi "Limpar" meu projeto (shift + cmd + K) e funcionou. Parecia estar relacionado ao certificado.
fonte
Comecei a receber este erro quando removi:
de
Runpath Search Paths
nas minhas configurações de compilação. Substituí-lo corrigiu tudo de novo (graças a Deus pelo controle da fonte!)Não sei como chegou lá, mas parece ser necessário que um binário encontre seu tempo de execução Swift incorporado.
fonte
@loader_path/../Frameworks
para testes de unidade do macOS e testes@loader_path/Frameworks
de unidade do iOS que precisavam ser adicionados.Para o dispositivo, você também precisa adicionar a estrutura dinâmica à
Embedded binaries
seção naGeneral
guia do projeto.fonte
No Xcode 8, a opção de
Embedded Content Contains Swift Code
opção não está mais disponível.Foi renomeado para
"Always Embed Swift Standard Libraries = YES"
fonte
Eu acho que é um bug quando os certificados são gerados diretamente do Xcode. Para resolver (pelo menos no Xcode 6.1 / 6A1052d):
fonte
OK, compartilhando aqui outra causa desse erro. Levei algumas horas para resolver isso.
No meu caso, a política de confiança do meu certificado no Keychain Access era Always Trust , alterando-a novamente para os padrões resolveu o problema.
Para abrir a janela de configurações do certificado, clique duas vezes no certificado na lista de certificados Keychain Access.
fonte
Eu estava tendo esse problema ao executar meus testes Swift (mas não meu aplicativo). Acontece que o teste precisava ter mais do
@executable_path/Frameworks
que aRunpath Search Paths
configuração de construção para o alvo de teste. Definir os caminhos de pesquisa do caminho de execução para o seguinte funcionou para mim:fonte
carthage copy-frameworks
porque era uma dependência secundária (que uma estrutura que eu estava usando havia adicionado )Esse problema ocorre novamente no Xcode 10.2 . Você deve baixar e instalar o seguinte pacote da Apple. Ele fornece suporte ao Swift 5 Runtime para ferramentas de linha de comando .
https://support.apple.com/kb/DL1998?locale=en_US
fonte
msvcrt.dll
Você tem que definir o
Runpath Search Paths
que@executable_path/Frameworks
, como mostrou na imagem seguinte de configurações de compilação:Se você tiver alguma estrutura incorporada criada no Swift, poderá definir
YES
as Opções de CompilaçãoEmbedded Content Contains Swift Code
.fonte
otool -L
pois esses dylibs me disseram que eles já estavam usando@rpath/...
seu próprio caminho. Agora, definindo o caminho de pesquisa do caminho de execução como o caminho dessa pasta, eu posso executar minha ferramenta e ela encontrará os dylibs armazenados em uma pasta próxima a ela.@rpath/libswiftAppKit.dylib
. Um problema me levou a saber que eu tinha que adicionar o caminho de pesquisa: com@executable_path/../Frameworks/
base nessas instruções . Se isso se aplica apenas à estrutura do meu projeto, não sei dizer. É importante observar que não foi necessário limpar o DerivedData para que essa configuração tenha efeito!Eu acho que a Apple já o resumiu em travamentos de aplicativos Swift ao tentar fazer referência à biblioteca Swift libswiftCore.dylib
Citado de Perguntas e Respostas Técnicas QA1886 :
Como os funcionários da AirSign declaram que o problema está relacionado ao atributo OU ausente no campo de assunto do certificado interno .
Assunto: UID = 269J2W3P2L, CN = iPhone Distribuição: 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
Vamos projetar P está importando a biblioteca personalizada L, então você deve adicionar L à
P -> Build Phases -> Embed Frameworks -> +
. Isso funciona para mim.fonte
A maneira mais fácil e fácil de ignorar: limpar e reconstruir.
Isso resolveu o problema depois de tentar as respostas acima e não funcionou.
fonte
Eu estava tendo o mesmo problema depois de mudar para um novo Mac e, depois de horas, tentando todas as respostas sugeridas nas perguntas, nada disso funcionou para mim.
A solução para mim foi instalar este certificado ausente. http://developer.apple.com/certificationauthority/AppleWWDRCA.cer
Encontre a resposta aqui. https://stackoverflow.com/a/14495100/976628
fonte
Altere Recursos de pods de cópia para o destino de:
para:
fonte
Eu resolvi excluindo os dados derivados e desta vez funcionou corretamente. Tentei com o Xcode 7.3.1GM
fonte
Essa mensagem de erro também pode ser causada ao atualizar o Xcode (e subseqüentemente para uma nova versão do Swift) e seu projeto usa uma estrutura criada / compilada com uma versão anterior / mais antiga do Swift.
Nesse caso, reconstruir a estrutura e adicioná-la novamente corrigirá o problema.
fonte
Depois de experimentar tudo, finalmente descobri que a construção nem sempre inclui todos os detalhes repetidamente. Talvez para acelerar o processo ... Para garantir a embalagem INTEIRA antes de executar em um dispositivo, faça uma Limpeza primeiro: Shift-Cmd-K. Em seguida, crie com: Cmd-B. Depois disso, execute-o no seu dispositivo. Fácil. Atenciosamente, a todos vocês, caras legais naquele lugar!
fonte
No meu caso, era apenas o nome do meu alvo:
Renomeei -o assim: MyApp.something e o mesmo problema apareceu. Mas eu vi na janela Configurações de compilação, o nome do módulo do produto foi alterado como esse MyApp-alguma coisa . Portanto, removi o ponto no meu nome de destino ( MyAppSomething ) e o problema desapareceu.
fonte
Para mim, tendo tentado tudo sem sucesso, o que funcionou foi remover
@executable_path/Frameworks
doPackaging section
(não sei como ele chegou lá em primeiro lugar)fonte
Nenhuma das soluções funcionou para mim. Reiniciar o telefone consertou-o. Estranho, mas funcionou.
fonte
Nenhuma dessas soluções parecia funcionar, mas quando mudei a permissão do certificado World Wide Developer para
Use System defaults
então funcionou. Incluí as etapas e capturas de tela no link abaixoGostaria de encorajá-lo a registrar o ticket no relatório de bug da Apple, conforme mencionado aqui, pois a Apple realmente deve resolver esse enorme erro: https://stackoverflow.com/a/41401354/559760
fonte
Xcode 7.2, iOS 9.2 em um dispositivo, 9.0 em outro. Ambos tiveram o erro. Não faço ideia do que mudou que o causou, mas as soluções acima para o WWDR estavam corretas para mim. Instale esse certificado e o problema resolvido.
https://forums.developer.apple.com/message/43547 https://forums.developer.apple.com/message/84846
fonte
Existem muitas respostas lá, mas talvez a minha resposta ajude alguém.
Estou com o mesmo problema, meu aplicativo funciona bem no Simulador, mas no dispositivo foi travado como o aplicativo Almoços e apresenta um erro como acima. Eu tentei todas as respostas e soluções. No meu caso, meu projeto, estou tendo vários destinos. Criei um destino duplicado B a partir do destino A. O destino B funciona bem enquanto o destino A foi travado. Estou usando diferentes recursos de imagem para cada destino. Depois de pesquisar e fazer o google, encontrei algo que pode ajudar alguém.
O aplicativo para de falhar quando eu mudo o nome de Ativar imagens de recursos para os dois aplicativos. por exemplo, destino A nome da imagem de lançamento do recurso LaunchImage A. Alvo B Nome do ativo da imagem LaunchImage B e atribuído corretamente na guia Geral de cada destino. Meus aplicativos funcionam bem.
fonte
Para mim, criando um aplicativo Swift da linha de comando do MacOS que dependia de bibliotecas Swift de terceiros (por exemplo, SQLite), nenhuma das soluções acima parecia funcionar. O que funcionou foi adicionar diretamente o seguinte caminho aos meus Caminhos de pesquisa do Runpath nas configurações de compilação:
/Applications/Xcode.app/Contents//Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/
Fazer isso deu um aviso em tempo de execução dizendo que o Xcode havia encontrado duas versões do libswiftCore - o que faz sentido. Exceto pelo fato de não incluir essa linha, o Xcode não encontrou nenhuma versão do libswiftCore.
Enfim, isso serve para mim, mesmo que não pareça certo - meu aplicativo é apenas um utilitário que não pretendo distribuir e, pelo menos, é executado agora!
fonte
Eu tenho várias versões do Xcode instaladas ao mesmo tempo. A estrutura foi criada com uma versão mais recente do Xcode. O aplicativo que eu tentei compilar estava com uma versão mais antiga do Xcode. Quando eu limpei e compilei o framework e o aplicativo com a mesma versão do Xcode, tudo funcionou.
fonte
Comecei a receber esse erro semelhante ao testar a adição do arquivo S3 usando os serviços da AWS. Abaixo estava o erro. dyld: Biblioteca não carregada: @ rpath / AWSAutoScaling.framework / AWSAutoScaling
Pesquisei muito e as soluções acima também não são úteis para mim. O link abaixo me ajudou a resolver esse problema.
https://forums.developer.apple.com/thread/21292
O que diz para corrigir esse problema baixando novamente o WWDR (Autoridade Certificadora de Relações com o Desenvolvedor da Apple em todo o mundo) .
fonte
Estou no Xcode 8.3.2. Para mim, o problema era que o certificado AppleWWDRCA estava no sistema e no chaveiro de login. Removidos os dois e adicionados ao chaveiro de login, agora ele funciona novamente. 2 dias perdidos 😭
fonte
Estou usando o Xcode 8.3.3 e o Xcode 9.2. A solução para mim foi mudar meu Xcode padrão de 8 para 9 usando o Xcode Select:
$ xcode-select --print-path
$ sudo xcode-select -switch /Applications/Xcode-9.2.app
Edit: Na verdade, o que parecia ajudar aqui foi que o Xcode 9.2 usou os dados derivados do Xcode 8.3.3. Não é uma solução, mas pelo menos me permite avançar com o meu trabalho.
fonte
Se você estiver recebendo um erro como este:
e use CocoaPods em sua estrutura, tente editar
Podfile
e removerinherit! :search_paths
doTest
destino e executepod install
novamente.Para mais detalhes, consulte https://github.com/CocoaPods/CocoaPods/issues/8868 .
fonte