TL; DR
Veja a resposta abaixo: https://stackoverflow.com/a/60013390/1121497
Parece que houve um problema no iOS 13.3 porque eu acabei de instalar o 13.4 e agora o Flutter funciona no meu iPhone. :)
Estou tentando executar um novo aplicativo Flutter (o aplicativo de exemplo criado por flutter create
) em um dispositivo iOS (um iPhone XS). O Xcode consegue instalá-lo, mas depois trava com esta mensagem:
dyld: Library not loaded: @rpath/Flutter.framework/Flutter
Referenced from: /private/var/containers/Bundle/Application/BA807438-FA5B-4021-B37D-FC437B2C80CA/Runner.app/Runner
Reason: no suitable image found. Did find:
/private/var/containers/Bundle/Application/BA807438-FA5B-4021-B37D-FC437B2C80CA/Runner.app/Frameworks/Flutter.framework/Flutter: code signature invalid for '/private/var/containers/Bundle/Application/BA807438-FA5B-4021-B37D-FC437B2C80CA/Runner.app/Frameworks/Flutter.framework/Flutter'
Se eu tentar flutter run
, o aplicativo também abre e trava. E o comando continua esperando para sempre:
$ flutter run
Launching lib/main.dart on Ferran Maylinch’s iPhone in debug mode...
Automatically signing iOS for device deployment using specified development team in Xcode project: 25D86TPBWG
Running Xcode build...
├─Assembling Flutter resources... 4.3s
└─Compiling, linking and signing... 13.3s
Xcode build done. 21.0s
Installing and launching...
(This is taking an unexpectedly long time.) ⢿
No Xcode, configurei uma equipe (equipe pessoal) e o certificado de assinatura (certificado de desenvolvimento da Apple) parece bom porque posso instalar um projeto Hello world Swift no meu dispositivo.
Nota: não estou pagando uma conta do Apple Developer Program . Isso é absolutamente necessário para executar aplicativos Flutter em dispositivos iOS?
Segui as instruções do macOS e flutter doctor
disse que tenho tudo o que preciso para o iOS:
[✓] Flutter (Channel stable, v1.12.13+hotfix.5, on Mac OS X 10.15.2 19C57, locale en-ES)
[!] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
! Some Android licenses not accepted. To resolve this, run: flutter doctor --android-licenses
[✓] Xcode - develop for iOS and macOS (Xcode 11.3)
[!] Android Studio (version 3.5)
✗ Flutter plugin not installed; this adds Flutter specific functionality.
✗ Dart plugin not installed; this adds Dart specific functionality.
[✓] IntelliJ IDEA Ultimate Edition (version 2019.3.1)
[!] VS Code (version 1.41.1)
✗ Flutter extension not installed; install from
https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
[✓] Connected device (1 available)
! Doctor found issues in 3 categories.
Como você pode ver, eu usei o canal estável, para descartar problemas com o canal beta, mas geralmente trabalho no canal beta para criar flutter para a web (que funciona bem).
No simulador do iOS, o aplicativo também funciona bem.
Recentemente notei que não tenho o arquivo ios/Podfile
. Eu encontrei este post falando sobre isso. Não sei se isso é importante ou não no meu caso, mas tentei adicionar manualmente esse Podfile . De qualquer forma, recebo o mesmo erro de assinatura.
Frustrado com isso, mudei para o NativeScript por enquanto.
flutter build ios --release
Respostas:
EDIT: Isso foi corrigido no iOS 13.4, lançado em 24 de março.
Esta é uma regressão do iOS 13.3.1 não relacionada ao Flutter. Consegui reproduzir a falha sem nenhum código Flutter ou CocoaPods criando um novo projeto do Xcode, adicionando um destino de estrutura e escolhendo um perfil de provisionamento de equipe pessoal.
Consulte a edição do GitHub: https://github.com/flutter/flutter/issues/49504#issuecomment-581554697 .
O bug não deve afetar os perfis ou aplicativos de provisionamento da equipe da Conta do desenvolvedor que já estão assinados e distribuídos na App Store.
Infelizmente, a única solução alternativa pode ser evitar atualizar os dispositivos de desenvolvimento para 13.3.1 até que isso seja resolvido.
fonte
Tanto quanto posso ver, é um problema de compatibilidade com o Flutter no iOS 13.3.1. No meu caso, meu aplicativo funciona perfeitamente bem no iPhone XR com iOS 13.3, mas falha ao iniciar em outro iPhone XR com iOS 13.3.1. Não é possível testar no simulador, pois é um aplicativo de câmera, mas funciona em dispositivos Android físicos e emuladores Android.
fonte
sudo xcodebuild -license
.pod install
, em seguida,pod update
Se isso não funcionar, vá para a pasta ios no seu projeto flutter e abra Runner.xcworkspace tocando duas vezes nele. Deve ficar assim:
Quando o xcode abrir, clique em Runner no canto superior esquerdo.
Em seguida, vá para Assinatura e recursos e, no menu suspenso "Equipe", selecione um campo. Se não houver, crie uma conta.
Em seguida, no "Identificador de pacote", o nome do pacote do seu aplicativo deve aparecer. Adicione .app no final. Por exemplo, se seu "com.example.yourapp" torná-lo "com.example.yourapp.app" e pressione enter.
Pressione o botão play no canto superior esquerdo para executar o aplicativo no dispositivo selecionado.
fonte
Você pode seguir o passo um por um
fonte
Este post não é uma resposta, porque também estou lutando com esse problema e escrevendo isso, pois já faz um tempo sem uma correção
Tudo o que eu quero é fornecer mais detalhes ao OP e a outros membros aqui. Então, eu tenho tudo como OP afirmou.
Isto é o que eu tentei:
O Podfile não é criado (mesmo após a execução no Simulator e etc.) e é por isso que tentei incluir um de um aplicativo de exemplo de flutter do Flutter Github.
Excluiu todos os certificados do Keychain Access e os restaurou via Xcode.
Removido Xcode, Pod e configuração relacionada a ele. Certificados removidos. Restaurou tudo após uma reinicialização (nova instalação)
Atualizei o Flutter para o canal dev (1.14.1) e regenerei o projeto usando
flutter create .
Também tentei alterar a assinatura do desenvolvedor da Apple para o desenvolvedor do iOS em todos os destinos (Pod incluído)
Ao executar um dispositivo no iOS 13.3.1 Beta, atualizei o Target para 13.2 (máximo disponível no momento?).
Ativei o macOS-builds e criei um aplicativo para Mac
Resumindo:
Btw. Tudo estava funcionando no MacBook Pro 13 com o Catalina 10.15.3 instalado e o Xcode 11.3.1.
Cada execução estava com o sinalizador -v e nada suspeito foi encontrado nos logs durante a compilação s
Novamente. Lamento se fiz algo errado ao postar isso, mas não queria duplicar esse problema ou sugerir uma edição ao OP, pois esse post é bastante longo.
fonte
Tente mudar para o canal estável via
flutter channel stable
, executeflutter upgrade
e navegue até o projeto do aplicativo e executeflutter run
fonte
Apenas para executar o aplicativo no modo de Depuração, não precisa de nenhuma conta paga pela Apple. 1) Abra o xCode para esse projeto, selecione o dispositivo e execute nele.
Abra o XCode desse projeto e verifique as Configurações de compilação, pois o caminho FLUTTER_ROOT está correto; caso contrário, crie a raiz do flutter e forneça o caminho.
fonte
FLUTTER_ROOT
. Esse não é o problema ... :(Abra o Xcode e clique em
Product -> Clean
ou (CMD
-Shift
-K
). Se isso não funcionar, tente o seguinte: https://macpaw.com/how-to/clear-xcode-cacheSe isso também não funcionar, entre em contato.
fonte
Você verificou este link que pode fornecer a saída desejada https://github.com/flutter/flutter/issues/16507 . deixe-me saber se funciona pode ser um problema de assinatura, este post lhe dará a idéia do que está errado. obrigado
fonte
Ok, tendo um momento para criar a resposta:
Baseando-se na resposta do Subaharan Vel , pergunta: pastas Flutter Podfile e Pods não criadas no diretório ios e resposta sugerindo que a criação do simulador iOS pode criar podfile em local incorreto (ele deve ser criado automaticamente diretamente no diretório iOS. Portanto, parece provável que o seu Podfile existe em algum lugar lá. Tente encontrá-lo ou apenas remover o diretório ios inteiro, limpe o projeto e recriá-lo. Certifique-se também de que esse não seja o caso. Criando um Podfile para adicionar pods do iOS antes de adicionar qualquer plug-in do Flutter o Podfile existente .
Boa sorte, espero que ajude você
fonte
Podfile
lugar nenhum . Eu corrofind . -name Podfile
e não recebo nada. Eu removi oios
diretório, mas agora, como posso recriá-lo? Se eu executarflutter build ios
, recebo o erroApplication not configured for iOS
.Não é uma solução ideal, mas o seguinte funcionou para mim.
Embora você não consiga ver nada na janela de depuração, pois o processo termina após gerar o erro. Não é uma solução ideal, mas definitivamente uma solução alternativa até obtermos a próxima atualização do Xcode.
fonte