dyld`__abort_with_payload: Sem mensagem de erro

86

Quando eu inicio meu aplicativo com o XCode, eu tenho um travamento, mas nenhum erro

O aplicativo está parando neste tópico

insira a descrição da imagem aqui

O que posso fazer para ter mais informações sobre o assunto?

Kevin ABRIOUX
fonte

Respostas:

107

Se você estiver usando frameworks personalizados, você precisa colocá-lo dentro da seção "Binários incorporados" localizada no projeto Xcode na guia Destino / Geral.

mkonovalov
fonte
1
Eu tenho uma estrutura personalizada e está listada em "Binários incorporados" no Projeto Xcode em Destino> Geral. Ainda estou tendo esse problema quando tento executar meus testes de unidade. Recentemente, atualizei as partes Swift do meu código para Swift 3 (de 2). Se isso ajudar ...
Mario A Guzman
@MarioAGuzman Como você corrigiu isso? Também enfrento o problema após a migração do Swift 3
iOS
@iOS Infelizmente não tive uma solução real. O problema se resolveu com o Xcode 8.3 que acabou de ser lançado.
Mario A Guzman
Por que isso precisa estar na seção Binários incorporados? Estou tentando usar o ObjectiveDropboxOfficial.framework. Eu estava recebendo esse erro, coloquei no Embedded e ele 'consertou'. No entanto, retirei-o novamente e ele permanece "consertado". Outros alvos que são configurados com o mesmo AFAICT falham. Os documentos de instalação da caixa de depósito não dizem para colocar em Embedded Frameworks.
Jim Leask
Isso ajudou. Além disso, certifique-se de não ter duplicatas em "Linked Frameworks and Libraries". Quando você o adiciona à seção Incorporado, ele o adiciona automaticamente à seção Vinculado.
milesmeow de
60

Para mim um simples Cleane Rebuildresolvido. Espero que ajude.

FlixMa
fonte
81
Limpar, Limpar pasta de compilação, excluir conteúdo da pasta Derived Data, instalar Pod (onde apropriado), reiniciar Xcode, reiniciar máquina; em seguida, passe um pouco de sangue de cordeiro na porta para uma boa medida
johnnyclem
1
Me ajudou também !!
Dmitriy Greh
Excluir o diretório e obter o último commit do git não ajudou, mas limpar e reconstruir ajudou lol
え る ま る
8
No meu caso, tive que amarrar pimenta e limão no batente da porta.
Naresh
1
Tive que sacrificar meu primeiro filho também, mas funcionou!
Andor Németh
26

insira a descrição da imagem aquiEsse problema apareceu após a atualização do sistema para macOS 10.15.2 beta. Desativar "Thread Sanitizer" resolveu o problema (Xcode 11.2). Agora não consigo usar o Thread Sanitizer e tenho que esperar pela próxima atualização do sistema operacional.

Дмитрий Акимов
fonte
6
Esta postagem responde às perguntas originais quando o problema surge nos simuladores Xcode 11.3 após a atualização para o Mac 10.15.2. Parece ser o bug da Apple, consulte forums.developer.apple.com/thread/126891
Vadim Motorine
19

Adicionar a estrutura à lista de ativos binários incorporados corrigiu isso. Aqui está como a configuração de um framework estrangeiro se parece na forma final na GUI do Xcode como um Embedded Framework (Xcode 9.2, pessoalmente, eu gosto mais de uma trilha visual de migalhas ;-)): insira a descrição da imagem aqui

A Apple travou intencionalmente o tempo de execução para, de alguma forma, informar ao desenvolvedor sobre o problema de que você não pode usar estruturas não-Apple como estruturas simplesmente vinculadas no desenvolvimento do iOS? Seria melhor que aparecesse como um erro de compilação, eu acho ... com um botão que dizia "mova!"

O uso de binários incorporados evita que o usuário final tenha que adicionar o Framework independentemente de seu aplicativo (ou ter que fazer com um instalador). No caso do iPhone (iOS), isso é impossível, mas no macOS é possível, mas pode ficar bagunçado rápido.

Para o usuário final, é muito mais agradável simplesmente arrastar e soltar um aplicativo para instalá-lo no macOS, que é onde o embutido se torna um benefício. A incorporação também evita os clássicos "conflitos de DLL" de ter versões externas de sua estrutura para gerenciar. (espaço em disco é barato, o tempo do meu cliente é precioso).

Cerniuk
fonte
Pequena atualização. O Xcode 10.1 agora permite que você arraste o framework personalizado da seção "Link Binary With Libraries", onde ele vai por padrão, para a seção "Copy Bundle Resources" onde deve estar ... Ele não copia mais apenas a referência mas também o move. Captura de tela aqui: stackoverflow.com/questions/24993752/…
Cerniuk
13

Corrigi o erro no meu projeto agora mesmo!
Se você estiver usando o framework swift no projeto Object-C, aconselho você a alterar as configurações de construção.
Sempre incorporar a opção Bibliotecas padrão Swift para SIM. como isso:insira a descrição da imagem aqui

espero que isso tenha sido útil para você.

Hongbo Liu
fonte
Isso funcionou para mim mesmo se não houver (aparentemente) nenhum código swift no meu projeto.
Jim75
XCode mudou para o valor de volta para Não e eu tinha esquecido disso. Obrigado :)
SeikoTheWiz
13

Resolvido finalmente!

O que funcionou para mim foi tornar a estrutura "opcional" em vez de "obrigatória".

Espero que ajude!

Eran Talmor
fonte
super homem, eu lutei com esse problema 1,5 dias. até mesmo encontrei esta bela matriz twitter.com/isupportmatrix alterando-a para obrigatório resolvido ao meu lado também
swift2geek
e também funcionou apenas com a configuração em Arquivo -> Configurações do projeto-> Sistema de compilação legado
swift2geek
11

Xcode 11.1 , Desligue Do not Embed, Embed & Signé uma boa opção.

0

222

Obrigado @mkonovalov, @William Cerniuk

Pérola Negra
fonte
1
Funcionou para mim. +1
abhimuralidharan
1
Esta etapa é obrigatória, você está tentando incorporar sua estrutura personalizada ao seu aplicativo.
Akash Bhardwaj
6

1) Continue a execução para ver se alguma mensagem aparece no depurador, como "MyFramework.framework" não encontrado. Se for esse o caso, siga esta discussão: Biblioteca do OS X Framework não carregada: 'Imagem não encontrada' Para mim, esta resposta funcionou: https://stackoverflow.com/a/44796734/4060763

2) Certifique-se de ter adicionado seus binários por meio da seção "Binários incorporados".

3) Certifique-se de ter habilitado a assinatura de estruturas na seção de fase de construção.

4) Certifique-se de que as estruturas incorporadas não sejam links simbólicos.

5) Você pode tornar as estruturas vinculadas opcionais em vez de obrigatórias na fase "Vincular binários com bibliotecas". Isso dirá ao iOS para não procurar por essas estruturas durante o lançamento. De qualquer forma, você precisa corrigir os erros para usar essas estruturas!

6) Verifique se todas as entradas de info.plist estão corretas. No meu caso, estava usando um arquivo info.plist do Mac para iOS. Ele estava procurando por algum arquivo xib que não estava presente no projeto iOS.

7) Faça uma limpeza e construa após qualquer alteração. Isso é necessário porque o xcode não copia / altera esses arquivos se eles já existirem.

8) Remova o aplicativo do iPad e instale-o. Mesma razão de 7.

coolVick
fonte
6

Desmarcar "Guard Malloc" no diagnóstico funcionou para mim. Veja a imagem para configurações

Loop infinito
fonte
2
Guard Malloc, estar correto. Alguém sabe por que ele corrige o travamento?
Mojo66 de
1
Você também pode tentar limpar o projeto e executar novamente ou apenas reiniciar o Xcode. Esses tipos de erros são irritantes e são como bugs no Xcode
Karanveer Singh
5

Para responder à pergunta original "O que posso fazer para ter mais informações sobre o problema?", Este tópico do fórum da Apple fornece uma dica muito simples: simplesmente execute o aplicativo travado fora do XCode (ou seja, pare-o do XCode e execute-o manualmente no seu dispositivo). Isso produzirá um log de travamento contendo mais detalhes sobre o que aconteceu. Você pode então revisar este log no menu da janela XCode / Dispositivos e Simuladores -> Exibir Logs do Dispositivo.

Fred
fonte
4

Eu tinha acabado de aplicar a "Privacidade - Descrição do uso da câmera" no info.plist.

Não sei se esta informação ajuda mais alguém ...

Linus
fonte
4

Eu enfrentei o mesmo problema com o Xcode 11.3 e o macOS Catalina 10.15.2. O aplicativo estava funcionando bem no dispositivo, mas não no simulador. Parece que há um problema com o Simulador e a solução alternativa é desativar o Thread Sanitizer.

Consulte: https://forums.developer.apple.com/message/397978#397978

Espero que isto ajude.

Pankaj Kulkarni
fonte
3

Encontrei um erro com a mesma assinatura (meu projeto estava em Obj-C) e descobri que havia esquecido de vincular com a estrutura apropriada. A mensagem de erro no log de depuração que levou à localização do erro foi:

dyld: Símbolo não encontrado: _OBJC_CLASS _ $ _ SFSafariViewController

Para meu erro específico, adicionar SafariServices.framework em Targets -> Build Phases -> "Link Binary With Libraries" resolveu o problema. Embora você provavelmente não tenha o mesmo erro e resolução específicos, é útil verificar o log de depuração em busca de pistas.

user1825506
fonte
2

Eu tive essa situação após atualizar o Xcode para v10.2.1 e swift para v5.0. Se você estiver usando carthage + RxSwift, o novo RxSwift usa RxRelay.framework. Você deve ir para o diretório / Carthage / Build, localizar essa estrutura e colocá-la em seu projeto. Não se esqueça também de adicioná-lo ao seu carthage copy-frameworksscript: $(SRCROOT)/Carthage/Build/iOS/RxRelay.framework

Resolvido graças a: https://stackoverflow.com/a/52550148/2493555

Milczi
fonte
1

Se você estiver usando uma estrutura escrita em Swift em um aplicativo Objective-C, você precisa incluir o conjunto de ferramentas Swift no aplicativo que consome a estrutura.

A maneira que descobri para fazer isso é criar um arquivo swift fictício no aplicativo para que o XCode reconheça o swift e o adicione ao projeto de maneira apropriada. Em seguida, você pode excluir o arquivo fictício.

Eu adoraria se alguém soubesse uma maneira melhor de adicionar explicitamente o swift a um projeto object-c sem adicionar um arquivo swift.

markw
fonte
1

se você usar a estrutura de construção Carthage, depois de arrastar a estrutura para o seu projeto, você deve adicioná-la aos Binários Gerais / Incorporados.

responsável
fonte
1

Eu encontro a maneira certa de resolver isso.

Certifique-se de AppleWWDRCA.cerdefinir o modo padrão do sistema, então ele funcionará:

insira a descrição da imagem aqui

Leo
fonte
Funcionou para mim também.
dev_shanghai,
1

Eu estava enfrentando o mesmo problema. Definir 'Always Embed Swift Standard Libraries' como Yes nas configurações de build do meu destino funcionou para mim.

Arpit Panda
fonte
1

Tive um problema semelhante que foi resolvido pela falta de especificação de permissão no plist (por mais estranho que seja ..)

Eu tentei usar AVCaptureDevice e ele travou na inicialização (meu aplicativo era mínimo)

Adicionando - Privacy - Camera Usage Description para info.plistresolver isso para mim.

Rock_Artist
fonte
1

Além disso, se você estiver usando estruturas personalizadas, certifique-se de definir o tipo Mach-O como biblioteca estática. Eu li em algum lugar que o IOS não permite dylib. De qualquer forma, isso funcionou para mim.

Michael Ribbons
fonte
1

Para aumentar a longa lista de encontros com esse erro, ele ocorre quando estou no XCode12.2 Beta 2 implantando no meu Mac executando MacOS 10.15.5 com o destino de implantação definido como MacOS 11.0. Esta situação aconteceu porque eu estava testando o aplicativo Mac Catalyst Tutorial para adicionar uma barra lateral. Mudar o destino para MacOS 10.15.5 eliminou o erro e inicializou o aplicativo corretamente.

Steve Harris
fonte
0

Corrigi meu erro em meu projeto.
1. Verifique outros tópicos quando o erro aconteceu. Descobri que meu erro é sobre a câmera.

insira a descrição da imagem aqui

  1. Adicione a privacidade da câmera no arquivo Info.plist.
    1) Abra o arquivo info.plist.
    2) Adicione uma nova chave chamada "Privacidade - Descrição do uso da câmera" e insira uma string que descreva por que o aplicativo precisa da câmera. A descrição será exibida quando seu aplicativo precisar de privacidade.

insira a descrição da imagem aqui

WangYang
fonte
0

Acabei de ter o mesmo problema e a razão foi devido ao fato de que revoguei meus certificados de desenvolvedor e criei novos com o Xcode 10, após uma nova atualização do macOS Mojave (para alguns, ele excluiu todas as credenciais de login e desatualizou alguns certificados de chaveiro).

Então, tudo que eu tive que fazer foi remover os aplicativos instalados do meu dispositivo e executá-los através do Xcode novamente, para que ele instale o novo Perfil de Provisionamento certo no meu dispositivo :)

Frank eno
fonte
0

Às vezes, isso acontece quando você usa estruturas de sistema que são acessíveis apenas a partir da versão iOS posterior à sua versão de destino. Pode ser corrigido marcando esta estrutura vinculada como opcional.

Por exemplo, um projeto direcionado ao iOS 11 e usando o recurso AuthenticationServices para iOS 12 AutoFill travará no iOS 11 da maneira descrita.

Lazarevzubov
fonte
0

Na verdade, tive o problema com o 11.3.1 e o Thread Sanitizer já estava desligado conforme mencionado acima. No meu caso, o problema era que eu costumava ter diferentes versões de xCode na minha pasta de aplicativos como essa

/Applications/xcode11.3.1/Xcode.app
/Applications/xcode11.3/Xcode.app
/Applications/xcode10.1/Xcode.app

e

/Applications/Xcode.app - was 11.2

Demoro 2 dias para entender que o sistema de compilação olha o /Applications/Xcode.app por padrão. Portanto, trazer 11.3.1 para o /Applications/Xcode.app finalmente resolve o problema

d.rozumeenko
fonte
0

O mesmo problema aconteceu comigo. Eu estava usando o iOS 14 Beta e o problema foi corrigido quando atualizei para a versão oficial.

Dakata
fonte
-1

Tive esse problema apenas ao executar em um dispositivo real (iPhone SE). No projeto do simulador funcionou conforme o esperado.

Eu tentei todas as correções deste tópico e daqui: Biblioteca do OS X Framework não carregada: 'Imagem não encontrada' Nenhum desses funcionou para mim.

Para mim, o problema foi resolvido após reiniciar o iPhone (sic!).

Eu fiz:

  • limpar pasta de compilação,
  • limpar dados derivados,
  • exclua o aplicativo do dispositivo,
  • reiniciar o dispositivo

E finalmente funciona. :)

Se todas as outras soluções falharem, não se esqueça de experimentar.

vandermese
fonte
-3

Classifiquei pelo comando "pod install".

Amandeep Singh
fonte