TL; DR
Vea la respuesta a continuación: https://stackoverflow.com/a/60013390/1121497
Parece que fue un problema con iOS 13.3 porque acabo de instalar 13.4 y ahora Flutter funciona en mi iPhone. :)
Estoy tratando de ejecutar una nueva aplicación Flutter (la aplicación de muestra creada por flutter create
) en un dispositivo iOS (un iPhone XS). Xcode logra instalarlo, pero luego se bloquea con este mensaje:
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'
Si lo intento flutter run
, la aplicación también se abre y se bloquea. Y el comando sigue esperando para siempre:
$ 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.) ⢿
En Xcode configuré un Equipo (Equipo personal) y el Certificado de firma (Certificado de desarrollo de Apple) parece estar bien porque puedo instalar un proyecto Hello world Swift en mi dispositivo.
Nota: No estoy pagando una cuenta del Programa de Desarrolladores de Apple . ¿Es absolutamente necesario ejecutar aplicaciones Flutter en dispositivos iOS?
He seguido las instrucciones de macOS y flutter doctor
dice que tengo todo lo que necesito para 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 puede ver, utilicé el canal estable para descartar problemas con el canal beta, pero generalmente trabajo en el canal beta para crear flutter para la web (que funciona bien).
En el simulador de iOS, la aplicación también funciona bien.
Recientemente me di cuenta de que no tengo el archivo ios/Podfile
. Encontré esta publicación hablando de eso. No sé si esto es importante o no en mi caso, pero intenté agregar manualmente este Podfile . De todos modos, me sale el mismo error de firma.
Frustrado por esto, cambié a NativeScript por ahora.
flutter build ios --release
Respuestas:
EDITAR: Esto se corrigió en iOS 13.4, que se lanzó el 24 de marzo.
Esta es una regresión iOS 13.3.1 no relacionada con Flutter. Pude reproducir el bloqueo sin ningún código de Flutter o CocoaPods creando un nuevo proyecto Xcode, agregando un objetivo de marco y eligiendo un perfil de aprovisionamiento de Equipo personal.
Consulte la edición de GitHub: https://github.com/flutter/flutter/issues/49504#issuecomment-581554697 .
El error no debe afectar los perfiles de aprovisionamiento del equipo de la cuenta de desarrollador o las aplicaciones que ya están firmadas y distribuidas en la App Store.
Desafortunadamente, la única solución puede ser evitar actualizar los dispositivos de desarrollo a 13.3.1 hasta que esto se resuelva.
fuente
Hasta donde puedo ver, es un problema de compatibilidad de Flutter con iOS 13.3.1. En mi caso, mi aplicación funciona perfectamente bien en iPhone XR con iOS 13.3 pero se bloquea al iniciarse en otro iPhone XR con iOS 13.3.1. No se puede probar en el simulador, ya que es una aplicación de cámara pero funciona tanto en dispositivos Android físicos como en emuladores de Android.
fuente
sudo xcodebuild -license
.pod install
luegopod update
Si esto no funciona, vaya a la carpeta ios en su proyecto de flutter y abra Runner.xcworkspace tocándolo dos veces. Debe tener un aspecto como este:
Cuando se abre xcode, haga clic en Runner en la esquina superior izquierda.
Luego vaya a Firma y capacidades y, en el menú desplegable "Equipo", seleccione un campo. Si no existe ninguno, cree una cuenta.
Luego, en el "Identificador de paquete", debería aparecer el nombre del paquete de su aplicación. Agregue .app al final. Por ejemplo, si es "com.example.yourapp" conviértalo en "com.example.yourapp.app" y presione Intro.
Presione el botón de reproducción en la parte superior izquierda para ejecutar la aplicación en el dispositivo seleccionado.
fuente
¿Puedes seguir el paso uno por uno?
fuente
Esta publicación no es una respuesta porque estoy luchando con este problema también y escribo esto ya que ha pasado un tiempo sin una solución
Todo lo que quiero es proporcionar más detalles a OP y otros miembros aquí. Así que tengo todo como OP declaró.
Esto es lo que he intentado:
Podfile no se crea (incluso después de ejecutarse en Simulator, etc.) y es por eso que he intentado incluir uno de una aplicación de ejemplo de flutter de Flutter Github.
Eliminó todos los certificados de Keychain Access y los restauró a través de Xcode.
Se eliminó Xcode, Pod y la configuración relacionada con él. Certificados eliminados. Restaurado todo después de un reinicio (instalación nueva)
He actualizado Flutter al canal de desarrollo (1.14.1) y he regenerado el proyecto usando
flutter create .
También he tratado de cambiar la firma de Apple Developer a iOS Developer en todo el destino (Pod incluido)
Cuando ejecuto un dispositivo en iOS 13.3.1 Beta, actualicé Target a 13.2 (¿máximo disponible en este momento?).
He habilitado macOS-builds y he creado una aplicación para Mac
Para resumir:
Por cierto. Todo se estaba ejecutando en MacBook Pro 13 con Catalina 10.15.3 instalado y Xcode 11.3.1.
Cada ejecución tenía el indicador -v y no se encontró nada sospechoso en los registros durante la compilación s
De nuevo. Lo siento si hice algo mal al publicar esto, pero no quería duplicar este problema o sugerir OP una edición, ya que esta publicación es bastante larga.
fuente
Intente cambiar al canal estable a través de
flutter channel stable
, ejecutarflutter upgrade
y luego navegar al proyecto de la aplicación y ejecutarflutter run
fuente
Solo para ejecutar la aplicación en modo de depuración, no necesita ninguna cuenta paga de Apple. 1) Abra el xCode para ese proyecto y seleccione el dispositivo y ejecútelo.
Abra el XCode de ese proyecto y verifique que la Configuración de compilación ya que la ruta FLUTTER_ROOT es correcta, si no, cree la raíz del aleteo y dé la ruta.
fuente
FLUTTER_ROOT
. Ese no es el problema ... :(Abra el Xcode y haga clic en
Product -> Clean
o (CMD
-Shift
-K
). Si eso no funcionó, intente seguir esto: https://macpaw.com/how-to/clear-xcode-cacheSi eso tampoco funciona, avíseme.
fuente
¿Ha comprobado este enlace que puede proporcionarle la salida deseada https://github.com/flutter/flutter/issues/16507 . avíseme si funciona puede ser un problema de firma, esta publicación le dará la idea de qué está yendo mal. Gracias
fuente
Ok, teniendo un momento para crear respuesta:
Basándose en la respuesta de Subaharan Vel , pregunta: Flutter Podfile y las carpetas de Pods no creadas en el directorio ios y la respuesta sugiere que compilar para el simulador de iOS puede crear un podfile en un lugar incorrecto (debería crearse automáticamente directamente en el directorio de iOS. Por lo tanto, parece probable que su Podfile existe en algún lugar allí. Intente encontrarlo o simplemente elimine todo el directorio ios, limpie el proyecto y vuelva a crearlo . También asegúrese de que este no sea el caso Crear un Podfile para agregar pods de iOS antes de agregar cualquier complemento de Flutter nunca conecta los pods de plugin en El Podfile existente .
Buena suerte, espero que te ayude
fuente
Podfile
parte. Corrofind . -name Podfile
y no consigo nada. Eliminé elios
directorio pero ahora, ¿cómo puedo recrearlo? Si corroflutter build ios
me sale el errorApplication not configured for iOS
.No es una solución ideal, pero lo siguiente funcionó para mí.
Sin embargo, no podrá ver nada en la ventana de depuración ya que el proceso finaliza después de arrojar el error. No es una solución ideal, pero definitivamente es una solución alternativa hasta que obtengamos la próxima actualización de Xcode.
fuente