TL; DR
Zobacz odpowiedź poniżej: https://stackoverflow.com/a/60013390/1121497
Wygląda na to, że był to problem z iOS 13.3, ponieważ właśnie zainstalowałem 13.4, a teraz Flutter działa na moim iPhonie. :)
Próbuję uruchomić nową aplikację Flutter (przykładową aplikację utworzoną przez flutter create
) na urządzeniu z systemem iOS (iPhone XS). Xcodeowi udaje się go zainstalować, ale następnie ulega awarii z komunikatem:
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'
Jeśli spróbuję flutter run
, aplikacja również się otworzy i ulegnie awarii. A polecenie czeka wiecznie:
$ 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.) ⢿
W Xcode skonfigurowałem zespół (zespół osobisty), a certyfikat podpisywania (certyfikat Apple Development) wydaje się w porządku, ponieważ mogę zainstalować projekt Hello world Swift na moim urządzeniu.
Uwaga: nie płacę kontem programu Apple Developer . Czy jest to absolutnie konieczne do uruchamiania aplikacji Flutter na urządzeniach z iOS?
Postępowałem zgodnie z instrukcjami macOS i flutter doctor
powiedziałem, że mam wszystko, czego potrzebuję na 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.
Jak widać, użyłem kanału stabilnego, aby odrzucić problemy z kanałem beta, ale zwykle pracuję w kanale beta, aby zbudować trzepotanie dla sieci (co działa dobrze).
W symulatorze iOS aplikacja działa również dobrze.
Ostatnio zauważyłem, że nie mam pliku ios/Podfile
. Znalazłem ten post mówiący o tym. Nie wiem, czy w moim przypadku jest to ważne, czy nie, ale próbowałem ręcznie dodać ten plik Podfile . W każdym razie pojawia się ten sam błąd podpisu.
Sfrustrowany tym, na razie przełączyłem się na NativeScript .
flutter build ios --release