Flutter: construcción para iOS, pero el marco vinculado e integrado 'App.framework' se creó para iOS Simulator

13

Después de actualizar a Catalina 10.15.4 beta con Xcode 13.4 beta, que también actualizó Simulator a 13.4 (921.4).

La aplicación se compila y se ejecuta correctamente en un dispositivo conectado físicamente, pero ningún simulador de ningún dispositivo puede pasar esta etapa.

Tengo los errores

Creación para iOS, pero el marco vinculado e integrado 'App.framework' se creó para iOS Simulator.

o

Creación para iOS Simulator, pero el marco vinculado e integrado 'App.framework' se creó para iOS.

ingrese la descripción de la imagen aquí

¿Cómo puedo arreglar esto?

gordonturibamwe
fuente

Respuestas:

42

Xcode 11.4 cambió la forma en que los marcos están vinculados e incrustados, y puede experimentar problemas al cambiar entre dispositivos iOS y simuladores. Flutter v1.15.3 y posterior migrará automáticamente su proyecto Xcode.

Para despegarse, siga las instrucciones a continuación;

  • Solución rápida (haga que su simulador funcione)

rm -rf ios/Flutter/App.framework

  • Pasos oficiales recomendados para migrar manualmente

    1. Desde el directorio de la aplicación Flutter, abra ios / Runner.xcworkspace en Xcode.
    2. En el panel Navegador, busque el grupo Flutter y elimine App.framework y Flutter.framework. ingrese la descripción de la imagen aquí
    3. En la configuración de compilación de destino del Runner Fases de compilación> Enlace binario con bibliotecas, confirme que App.framework y Flutter.framework ya no estén presentes. Confirme también en Fases de construcción> Incrustar marcos.

ingrese la descripción de la imagen aquí

  1. Cambie la configuración de compilación de destino del Runner Fases de compilación> Script binario delgado de la siguiente manera:

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

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

ingrese la descripción de la imagen aquí

  1. En la configuración de compilación de destino Runner > Otras banderas de vinculador

    (OTHER_LDFLAGS) agrega $ (heredado) -framework Flutter

ingrese la descripción de la imagen aquí

¡Espero eso ayude!

Loïc Fonkam
fuente
La pregunta se cerró recientemente y recibió muchos votos negativos porque no está claro y se publicó en Meta . Parece que entiendes lo que está preguntando, ¿tienes una idea de cómo editarlo para que no esté tan claro?
CertainPerformance
1
Funciona como encanto!
Giedrius Šlikas
3

Xcode 11.4 cambió la forma en que se vinculan e incrustan los marcos, lo que está causando problemas al cambiar entre dispositivos iOS y simuladores.

Siga la guía oficial sobre cómo migrar su proyecto.

Viktor K
fuente
Después de seguir la guía oficial, mi aplicación aún no se cargó en mi dispositivo físico. Fue solo después de seguir la guía, ejecutar flutter cleanvarias veces, eliminar la Pods/carpeta y Podfile.lockluego reinstalar usando pod installla carpeta ios que finalmente funcionó.
Matthew Lerner
2

Actualizado a Xcode 11.4. Ios 13.4, Iphone X. La aplicación solo obtiene datos mediante API. La aplicación comenzó en la pantalla blanca y finalmente se bloquea, tanto en el simulador como en el dispositivo.

Seguí la guía oficial (yo también rm -rf ios/Flutter/App.framework) flutter.dev/docs/development/ios-project-migration . Corrí varias vecesflutter clean

También intenté eliminar Pods / folder y Podfile.lock, luego reinstalar usando pod installen la carpeta ios.

Como estoy usando datos asíncronos, también agregué como primera línea en main ()

WidgetsFlutterBinding.ensureInitialized();

Sin ayuda, la aplicación no inició ninguno de los simuladores.

Luego quité ios/y android/carpetas. Después de eso en la carpeta del proyecto ejecuté un comando flutter create .que regenera las carpetas mencionadas.

Después de esto, mi aplicación comenzó bien tanto en el simulador como en el dispositivo. Espero que esto sea de ayuda para otros. ¡¡NOTA!! Si ha realizado modificaciones manualmente en esas carpetas, realice una copia de seguridad o confirme de antemano.

usuario12657834
fuente
1

Después de varios días tratando de encontrar una solución para probar la aplicación Flutter en un dispositivo iOS, finalmente encontré esto:

flutter clean
flutter build ios

-Abra xCode y ejecute la aplicación en su dispositivo.

gordonturibamwe
fuente
Todavía no funciona para mí. hace lo mismo cuando intento ejecutar elflutter build ios
Raymond Ativie
3
Siga este enlace: flutter.dev/docs/development/ios-project-migration
gordonturibamwe
sí, eso es lo que terminé haciendo gracias
Raymond Ativie
0

Intenté la solución en el sitio web oficial de flutter pero no funcionó para mí, así que encontré una solución temporal que funcionó para mí, pero me costó mucho trabajo: Aquí está mi ejemplo con el proyecto stuck_framework que es un nuevo nuevo proyecto (ejecutado por primera vez en el simulador)


  1. Creé 2 carpetas dentro del proyecto flutter llamado "ios_simulator" y "ios_real_device". ingrese la descripción de la imagen aquí

  2. Ahora mi primera compilación fue para el simulador, luego quiero cambiar a un dispositivo real, moveré la carpeta ios dentro del proyecto Flutter al "simulador ios"

  3. Abro el proyecto con el código visual de estudio y ejecuto "flutter create". y ahora elegiré un dispositivo real para reconstruir el proyecto (si su simulador está en línea, salga). ingrese la descripción de la imagen aquí
  4. Ahora espero a que finalice la compilación y corro en el dispositivo real sin ningún error. Ahora tengo 2 ios project 1 para simuladores y uno para dispositivos reales.
  5. La próxima vez que quiera volver a ejecutar el simulador, simplemente elimino la carpeta ios actual y copio la carpeta ios que coloqué en "ios_simulator" de nuevo a la carpeta del proyecto. Espero que esto ayude
Phil Tran
fuente
0

La actualización manual de flutter a la versión 1.15 también resuelve este problema. Correr flutter version v1.15.17me ayudó.

Además, puede cambiar betao devcanales ejecutando el flutter channelcomando, pero asegúrese de verificar su código con todos los cambios de BC ...

Johnny Vietnam
fuente
0

En mi caso, solo funciona simulador (depuración). si desea implementar su aplicación en la tienda de aplicaciones (versión), le recomiendo que actualice la versión de flutter usando

flutter version v1.15.17

de lo contrario, se encontraría con la aplicación bloqueada con pantalla en blanco.

solo actualiza la versión de flutter y todo funciona bien

Kim
fuente
1.15.17aún no está en el canal estable.
Loolooii