A execução de aplicativos iOS causa erro de tempo de execução para estruturas "assinatura de código inválida"

33

Toda vez que tento executar este aplicativo, ele cria OK e é instalado, mas assim que é executado, o aplicativo quebra e imprime essa mensagem de erro. XCode 11 e iOS 13.

dyld: Library not loaded: @rpath/StandardCyborgFusion.framework/StandardCyborgFusion
  Referenced from: /private/var/containers/Bundle/Application/2292CCF2-800F-4E28-AF10-A1B98081DD0A/StandardCyborgExample.app/StandardCyborgExample
  Reason: no suitable image found.  Did find:
    /private/var/containers/Bundle/Application/2292CCF2-800F-4E28-AF10-A1B98081DD0A/StandardCyborgExample.app/Frameworks/StandardCyborgFusion.framework/StandardCyborgFusion: code signature invalid for '/private/var/containers/Bundle/Application/2292CCF2-800F-4E28-AF10-A1B98081DD0A/StandardCyborgExample.app/Frameworks/StandardCyborgFusion.framework/StandardCyborgFusion'

Já vi muitas postagens semelhantes aqui e nos fóruns do desenvolvedor de aplicativos sobre esse problema, mas nenhuma delas tem uma explicação ou uma correção válida. eu tentei

  • Limpeza e construção
  • Reiniciando o XCode
  • Reiniciando o Mac
  • Redefinindo completamente o Keychain
  • Verificando todas as configurações de confiança do chaveiro estão em "Usar padrões do sistema"
  • Reinicialização de fábrica do meu Mac

ATUALIZAÇÃO 1: parece haver um problema no meu dispositivo iOS. O aplicativo pode iniciar em um simulador, mas o simulador não é bom para meus propósitos de desenvolvimento, por isso preciso fazer isso funcionar no meu dispositivo. Atualizei recentemente meu iPhone XR para iOS 13.3.1.

ATUALIZAÇÃO 2: Encontrou outro grupo que parece ter o mesmo problema https://github.com/flutter/flutter/issues/49504 .

Aidan Rosswood
fonte
de onde é StandardCyborgFusion.framework? entre em contato com o desenvolvedor ...
user3441734 01/02
11
você tentou vincular ou incorporar a estrutura?
The Pedestrian
11
Este erro ocorre com todos os aplicativos. Não é um framework específico.
Aidan Rosswood
Adicionada uma atualização. Parece ser específico do dispositivo, pois funciona no simulador, e um amigo meu é capaz de compilar as mesmas estruturas em seu dispositivo.
Aidan Rosswood
11
Seu StandardCyborgFusion.framework não está com código assinado ou não foi compilado para a arquitetura arm64. Você ainda não nos contou como conseguiu a estrutura. Além disso, se alguém solicitar que você reinicie o Xcode para corrigir problemas de compilação / vinculação, faça um voto negativo.
Claus Jørgensen

Respostas:

25

Estou usando o CocoaPods e, para mim, isso corrige o erro (resposta do Wasa22 na questão do github):

  1. Abra o podfile
  2. Comente use_frameworks!
  3. Adicione use_modular_headers!
  4. No Terminal, faça uma atualização do pod -> instalação do pod
  5. No Xcode, Limpe (Command-Shift-K) -> Construir e Executar.

Fonte: https://github.com/Alamofire/Alamofire/issues/3051

Paul11100
fonte
Esta solução realmente funciona!
RapsIn4 12/02
Ainda não tive tempo de verificar se isso funciona, pois acabei de emprestar uma conta de desenvolvedor de amigos, mas vou marcar isso como correto. Eu gostaria que outros pudessem confirmar que isso também funciona para eles.
Aidan Rosswood
E se eu não tiver o podfile, o que posso fazer neste caso?
abdou31 25/02
11
comentar use_frameworks e executar o comando pod update é suficiente
Lahiru Prasanna 25/02
27

Este é um problema no iOS 13.3.1. Todas as estruturas dinâmicas que estão sendo compiladas para a versão mais recente do iOS 13.3.1 estão enfrentando esse problema quando executadas em um perfil de provisionamento pessoal / conta de desenvolvedor. A solução, copiada de jmagman do Github, está abaixo.

Você pode:

  1. Use um perfil de provisionamento que não seja da equipe pessoal (conta de desenvolvedor paga).
  2. Execute no simulador 13.3.1.
  3. Teste em um dispositivo iOS real executando 13.3 ou inferior.
  4. Instale o perfil beta no seu dispositivo de teste e instale o iOS 13.4 beta 3. (Fixo)
  5. Aguarde o lançamento do iOS 13.4.

Esperamos que esse problema seja corrigido em breve.

Aidan Rosswood
fonte
Estou fazendo o downgrade do iOS 13.3.1 para 13.3. Não pode ficar e esperar até que a Apple resolva isso.
Starsky
Huh ... parece que não consigo fazer backup dos meus dados com o iOS 13.3.1 e depois restaurá-los no iOS 13.3. Isso é triste (a restauração deve ser realizada nas mesmas versões do iOS. Portanto, essa também não é uma solução ...
Starsky
Eu gostaria de ter encontrado essa resposta mais cedo. . . Passei 3 horas tentando definir minhas configurações de compilação, binários e fases de compilação. . . Como obter uma conta paga, resolvi presto
Marcus Kim
Maçã clássica, criando um bug que o leva a comprar algo.
Darius Buhai
Muito obrigado pela resposta clara e correta, +1.
mAc 3/03
3

Isso parece estar corrigido no iOS 13.4 beta 3. Você pode instalar o perfil beta ou aguardar o lançamento do iOS 13.4.

Jenn
fonte
11
No dia 24 de março, a Apple lançou o iOS 13.4. Esta atualização inclui uma correção para o problema de assinatura de código! Consulte o iOS 13.4 beta 3 para obter mais informações.
Rover
2

Eu vejo duas maneiras de corrigi-lo.

  1. Faça o downgrade para o iOS 13.3. O iOS 13.3.1 quebra a assinatura de terceiros, a menos que você tenha uma conta de desenvolvedor paga. Se possível (obtenha um iphone barato dedicado ao desenvolvimento)

  2. Atualizar o Mac OS, Xcode e iOS para a versão beta mais recente (atualizar qualquer um deles sozinho não funcionará, porque o iOS beta requer o Xcode beta mais recente e o Xcode requer o Mac OS Catalina mais recente)

zhuangr
fonte
0

Se você rodar no Xcode, verá um erro como:

/private/var/containers/Bundle/Application/D0BD5694-A7D6-4820-A146- 
 A49DF0C0F0B1/Runner.app/Frameworks/Flutter.framework/Flutter: code signature 
invalid for '/private/var/containers/Bundle/Application/D0BD5694-A7D6-4820- 
A146-A49DF0C0F0B1/Runner.app/Frameworks/Flutter.framework/Flutter'

solução fornecida por jmagman no Github

O jmagman passou para a Apple (FB7562472) e permitirá que todos saibam se ouvem alguma coisa. mais detalhes no github

parikhparth23
fonte
0

Encontrei esse problema ao tentar construir no meu dispositivo iOS real (mas funcionou bem no simulador). Passei pelo menos 10 horas tentando corrigir esse bug. Tentei de tudo em todos os fóruns, nada funcionou. Mas é isso que finalmente funcionou para mim!

  • Atualizando do iOS 13.3.1 para iOS 13.4.1

Eu não poderia imaginar isso, mas é verdade que o iOS 13.3.1 quebra a assinatura de terceiros, a menos que você tenha uma conta de desenvolvedor paga!

Troca
fonte
Você só precisa atualizar o seu dispositivo iOS para 13.4.x. Após a atualização, posso executar um projeto de exemplo sem outros ajustes.
corban