Flutter - Criando para iOS, mas a estrutura vinculada e incorporada 'App.framework' foi criada para o iOS Simulator

13

Após atualizar para o Catalina 10.15.4 beta com o Xcode 13.4 beta, que também atualizou o Simulator para 13.4 (921.4).

O aplicativo compila e executa corretamente em um dispositivo conectado fisicamente, mas nenhum simulador de nenhum dispositivo pode passar nesse estágio.

Eu tenho os erros

Construído para iOS, mas a estrutura vinculada e incorporada 'App.framework' foi criada para o iOS Simulator.

ou

Criando para o iOS Simulator, mas a estrutura vinculada e incorporada 'App.framework' foi criada para o iOS.

insira a descrição da imagem aqui

Como posso consertar isso?

gordonturibamwe
fonte

Respostas:

42

O Xcode 11.4 mudou a maneira como as estruturas são vinculadas e incorporadas, e você pode ter problemas ao alternar entre dispositivos e simuladores iOS. O Flutter v1.15.3 e posterior migrará automaticamente seu projeto do Xcode.

Para se soltar, siga as instruções abaixo;

  • Solução rápida (faça seu simulador funcionar)

rm -rf ios/Flutter/App.framework

  • Etapas recomendadas oficiais para migrar manualmente

    1. No diretório do aplicativo Flutter, abra ios / Runner.xcworkspace no Xcode.
    2. No painel Navegador, localize o grupo Flutter e remova App.framework e Flutter.framework. insira a descrição da imagem aqui
    3. Nas configurações de construção de destino do Runner, as Fases de construção> Vincular binário com bibliotecas confirmam que App.framework e Flutter.framework não estão mais presentes. Confirme também em Fases de construção> Incorporar estruturas.

insira a descrição da imagem aqui

  1. Altere as configurações de construção de destino do Runner Fases de construção> Script binário fino da seguinte maneira:

    / bin / sh "$ FLUTTER_ROOT / packages / flutter_tools / bin / xcode_backend.sh" embed

    / bin / sh "$ FLUTTER_ROOT / packages / flutter_tools / bin / xcode_backend.sh" thin

insira a descrição da imagem aqui

  1. No destino do corredor Configurações de compilação> Outros sinalizadores de vinculador

    (OTHER_LDFLAGS) adicione $ (herdado) - Flutter de estrutura

insira a descrição da imagem aqui

Espero que ajude!

Loïc Fonkam
fonte
A questão foi encerrada recentemente e recebeu muitos votos negativos, porque não está clara e foi postada no Meta . Parece que você entende o que está perguntando, você tem uma idéia de como editá-lo em forma para que não fique tão claro?
CertainPerformance
11
Funciona como charme!
Giedrius Šlikas 26/04
3

O Xcode 11.4 mudou a maneira como as estruturas são vinculadas e incorporadas, o que está causando problemas na alternância entre dispositivos e simuladores iOS.

Siga o guia oficial sobre como migrar seu projeto.

Viktor K
fonte
Depois de seguir o guia oficial, meu aplicativo ainda não foi carregado no meu dispositivo físico. Somente depois de seguir o guia, executando flutter cleanvárias vezes, excluindo a Pods/pasta e Podfile.lockdepois reinstalando usando pod installa pasta ios, que finalmente funcionou.
Matthew Lerner
2

Atualizado para o Xcode 11.4. Ios 13.4, Iphone X. App apenas busca dados usando a API. O aplicativo foi iniciado na tela branca e, finalmente, travou, tanto no simulador quanto no dispositivo.

Eu segui o guia oficial (também rm -rf ios/Flutter/App.framework) flutter.dev/docs/development/ios-project-migration . Eu corri várias vezesflutter clean

Eu também tentei excluir Pods / pasta e Podfile.lock e reinstalar usando pod installa pasta ios.

Como eu estou usando dados assíncronos, também adicionei como primeira linha em main ()

WidgetsFlutterBinding.ensureInitialized();

Sem ajuda, o aplicativo não iniciou nenhum simulador.

Então eu removi ios/e android/pastas. Depois disso, na pasta do projeto, executei o comando flutter create .que regenera as pastas mencionadas.

Depois disso, meu aplicativo começou bem no simulador e no dispositivo. Espero que isso ajude outros. NOTA!! se você tiver feito alguma modificação manualmente nessas pastas, faça backup ou confirme com antecedência.

user12657834
fonte
1

Depois de vários dias tentando encontrar uma solução para testar o aplicativo Flutter no dispositivo iOS, finalmente encontrei o seguinte:

flutter clean
flutter build ios

-Abra o xCode e execute o aplicativo no seu dispositivo.

gordonturibamwe
fonte
Ainda não funciona para mim. faz a mesma coisa quando tento executar oflutter build ios
Raymond Ativie 27/03
3
Siga este link: flutter.dev/docs/development/ios-project-migration
gordonturibamwe
sim, foi o que acabei fazendo graças
Raymond Ativie 30/03
0

Eu tentei a solução no site oficial do flutter, mas não funcionou para mim, então encontrei uma solução temporária que funcionou para mim, mas levou alguns trabalhos difíceis: Aqui está o meu exemplo com o projeto stuck_framework, que é um novo novo projeto (primeira execução no simulador)

  1. Criei 2 pastas dentro do projeto flutter chamado
    "ios_simulator" e "ios_real_device". insira a descrição da imagem aqui

  2. Agora, minha primeira compilação foi para o simulador. Quero mudar para um dispositivo real. Vou mover a pasta ios dentro do projeto Flutter para o "ios_simulator"

  3. Abro o projeto com o código do visual studio e corro "flutter create". e agora vou escolher um dispositivo real para reconstruir o projeto (se o seu simulador estiver online, saia). insira a descrição da imagem aqui
  4. Agora espero a conclusão da compilação e corro no dispositivo real sem erros. Agora eu tenho 2 projeto ios 1 para simuladores e um para dispositivos reais.
  5. Na próxima vez em que desejar executar o simulador novamente, basta remover a pasta ios atual e copiar a pasta ios que coloquei no "ios_simulator" de volta à pasta do projeto flutuante. Espero que esta ajuda
Phil Tran
fonte
0

A atualização manual do flutter para a versão 1.15 também resolve esse problema. Corridaflutter version v1.15.17 me ajudou.

Além disso, você pode alternar para betaou devcanais executando o flutter channelcomando, mas certifique-se de verificar seu código em relação a todas as alterações de BC ...

Johnny Vietnam
fonte
0

No meu caso, ele funciona apenas em simulador (depuração). se você deseja implantar seu aplicativo na loja de aplicativos (versão), recomendo que você atualize a versão do flutter usando

flutter version v1.15.17

caso contrário, você encontrará um aplicativo com falha na tela branca.

basta atualizar a versão flutuante, então tudo funciona bem

KIM
fonte
1.15.17ainda não está no canal Stable.
Loolooii