TL; DR
Siehe Antwort unten: https://stackoverflow.com/a/60013390/1121497
Es sieht so aus, als wäre es ein Problem mit iOS 13.3 gewesen, da ich gerade 13.4 installiert habe und Flutter jetzt auf meinem iPhone funktioniert. :) :)
Ich versuche, eine neue Flutter-App (die von erstellte Beispiel-App flutter create
) auf einem iOS-Gerät (einem iPhone XS) auszuführen . Xcode schafft es, es zu installieren, aber dann stürzt es mit der folgenden Meldung ab:
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'
Wenn ich es versuche flutter run
, wird die App auch geöffnet und stürzt ab. Und der Befehl wartet ewig:
$ 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.) ⢿
In Xcode habe ich ein Team (Personal Team) konfiguriert und das Signaturzertifikat (Apple Development Certificate) scheint in Ordnung zu sein, da ich ein Hello World Swift-Projekt auf meinem Gerät installieren kann.
Hinweis: Ich bezahle kein Konto für das Apple Developer Program . Ist das unbedingt erforderlich, um Flutter-Apps auf iOS-Geräten auszuführen?
Ich habe die MacOS-Anweisungen befolgt und flutter doctor
gesagt, ich habe alles, was ich für iOS brauche:
[✓] 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.
Wie Sie sehen können, habe ich den stabilen Kanal verwendet, um Probleme mit dem Beta-Kanal zu verwerfen, aber ich arbeite normalerweise im Beta-Kanal, um ein Flattern für das Web zu erzeugen (was gut funktioniert).
Im iOS-Simulator funktioniert die App auch einwandfrei.
Kürzlich habe ich festgestellt, dass ich die Datei nicht habe ios/Podfile
. Ich fand diesen Beitrag darüber zu sprechen. Ich weiß nicht, ob dies in meinem Fall wichtig ist oder nicht, aber ich habe versucht, diese Poddatei manuell hinzuzufügen . Wie auch immer, ich bekomme den gleichen Signaturfehler.
Frustriert davon wechselte ich vorerst zu NativeScript .
flutter build ios --release
Antworten:
BEARBEITEN: Dies ist auf iOS 13.4 behoben, das am 24. März veröffentlicht wurde.
Dies ist eine iOS 13.3.1-Regression, die nichts mit Flutter zu tun hat. Ich konnte den Absturz ohne Flutter- oder CocoaPods-Code reproduzieren, indem ich ein neues Xcode-Projekt erstellte, ein Framework-Ziel hinzufügte und ein Personal Team-Bereitstellungsprofil auswählte.
Siehe GitHub-Problem: https://github.com/flutter/flutter/issues/49504#issuecomment-581554697 .
Der Fehler sollte sich nicht auf die Bereitstellung von Profilen oder Apps des Developer Account-Teams auswirken, die bereits signiert und im App Store verteilt sind.
Leider kann die einzige Problemumgehung darin bestehen, ein Upgrade der Entwicklungsgeräte auf 13.3.1 zu vermeiden, bis dies behoben ist.
quelle
Soweit ich sehen kann, handelt es sich um ein Flutter-Kompatibilitätsproblem mit iOS 13.3.1. In meinem Fall läuft meine App auf dem iPhone XR mit iOS 13.3 einwandfrei, stürzt jedoch beim Start auf einem anderen iPhone XR mit iOS 13.3.1 ab. Kann nicht im Simulator getestet werden, da es sich um eine Kamera-App handelt, die jedoch sowohl auf physischen Android-Geräten als auch auf Android-Emulatoren funktioniert.
quelle
sudo xcodebuild -license
.pod install
dann einpod update
Wenn dies nicht funktioniert, gehen Sie zum ios-Ordner in Ihrem Flatterprojekt und öffnen Sie Runner.xcworkspace, indem Sie zweimal darauf tippen. Es sollte so aussehen:
Wenn xcode geöffnet wird, klicken Sie oben links auf Runner.
Gehen Sie dann zu Signieren und Funktionen und wählen Sie in der Dropdown-Liste "Team" ein Feld aus. Wenn keine vorhanden ist, erstellen Sie ein Konto.
Dann sollte in der "Bundle-ID" der Bundle-Name Ihrer App angezeigt werden. Fügen Sie am Ende .app hinzu. Wenn es beispielsweise "com.example.yourapp" ist, machen Sie es zu "com.example.yourapp.app" und drücken Sie die Eingabetaste.
Drücken Sie die Wiedergabetaste oben links, um die App auf dem ausgewählten Gerät auszuführen.
quelle
Können Sie Schritt für Schritt folgen?
quelle
Dieser Beitrag ist keine Antwort, da ich auch mit diesem Problem zu kämpfen habe und dies schreibe, da es eine Weile ohne eine Lösung war
Ich möchte OP und anderen Mitgliedern hier nur weitere Einzelheiten mitteilen. Also habe ich alles wie OP angegeben.
Folgendes habe ich versucht:
Podfile wird nicht erstellt (auch nach dem Ausführen auf Simulator und so weiter) und deshalb habe ich versucht, eine aus einer Flatter-Beispiel-App von Flutter Github aufzunehmen.
Alle Zertifikate aus dem Schlüsselbundzugriff gelöscht und über Xcode wiederhergestellt.
Xcode, Pod und damit verbundene Einstellungen wurden entfernt. Zertifikate entfernt. Alles nach einem Neustart wiederhergestellt (Neuinstallation)
Ich habe Flutter auf den Dev-Kanal (1.14.1) aktualisiert und das Projekt mit neu generiert
flutter create .
Außerdem habe ich versucht, die Signatur von Apple Developer auf iOS Developer für alle Ziele zu ändern (Pod enthalten).
Während ich ein Gerät unter iOS 13.3.1 Beta ausführe, habe ich Target auf 13.2 aktualisiert (derzeit maximal verfügbar?).
Ich habe MacOS-Builds aktiviert und eine Mac-App erstellt
Um zusammenzufassen:
Übrigens. Alles lief auf dem MacBook Pro 13 mit Catalina 10.15.3 und Xcode 11.3.1.
Jeder Lauf hatte das Flag -v und während der Builds wurde in den Protokollen nichts Verdächtiges gefunden
Nochmal. Es tut mir leid, wenn ich etwas falsch gemacht habe, aber ich wollte dieses Problem nicht duplizieren oder OP eine Bearbeitung vorschlagen, da dieser Beitrag ziemlich lang ist.
quelle
Versuchen Sie, über zu einem stabilen Kanal zu wechseln
flutter channel stable
, ihn auszuführenflutter upgrade
und dann zum App-Projekt zu navigieren und auszuführenflutter run
quelle
Nur um die App im Debug-Modus auszuführen, ist kein Apple-Konto erforderlich. 1) Öffnen Sie den xCode für dieses Projekt, wählen Sie das Gerät aus und führen Sie es aus.
Öffnen Sie den XCode dieses Projekts und überprüfen Sie die Build-Einstellungen, da der Pfad FLUTTER_ROOT korrekt ist. Wenn nicht, erstellen Sie die Flatterwurzel und geben Sie den Pfad an.
quelle
FLUTTER_ROOT
. Das ist nicht das Problem ... :(Öffnen Sie den Xcode und klicken Sie auf
Product -> Clean
oder (CMD
-Shift
-K
). Wenn dies nicht funktioniert hat, versuchen Sie Folgendes: https://macpaw.com/how-to/clear-xcode-cacheWenn das auch nicht funktioniert, lass es mich wissen.
quelle
Haben Sie diesen Link überprüft, über den Sie möglicherweise die gewünschte Ausgabe erhalten ? Https://github.com/flutter/flutter/issues/16507 . Lassen Sie mich wissen, ob es funktioniert. Möglicherweise handelt es sich um ein Signaturproblem. In diesem Beitrag erfahren Sie, was falsch läuft. Vielen Dank
quelle
Ok, einen Moment Zeit, um eine Antwort zu erstellen:
Basierend auf der Antwort von Subaharan Vel , Frage: Flutter Podfile- und Pods-Ordner, die nicht im ios-Verzeichnis erstellt wurden, und Antwort, die darauf hindeutet, dass beim Erstellen für iOS-Simulator Podfiles an einer falschen Stelle erstellt werden können (sie sollten automatisch direkt im iOS-Verzeichnis erstellt werden. Daher ist es wahrscheinlich, dass Ihr Podfile irgendwo dort vorhanden. Versuchen Sie es zu finden oder entfernen Sie einfach das gesamte ios-Verzeichnis, bereinigen Sie das Projekt und erstellen Sie es neu. Stellen Sie außerdem sicher, dass dies nicht der Fall ist. Erstellen Sie eine Pod-Datei zum Hinzufügen von iOS-Pods, bevor Sie Flutter-Plugins hinzufügen, und schließen Sie die Plugin-Pods niemals an das vorhandene Podfile .
Viel Glück, ich hoffe es wird dir helfen
quelle
Podfile
nirgendwo. Ich rennefind . -name Podfile
und bekomme nichts. Ich habe dasios
Verzeichnis entfernt, aber wie kann ich es jetzt neu erstellen? Wenn ich renne,flutter build ios
bekomme ich den FehlerApplication not configured for iOS
.Keine ideale Lösung, aber das Folgende hat bei mir funktioniert.
Im Debug-Fenster wird jedoch nichts angezeigt, da der Prozess nach dem Auslösen des Fehlers beendet wird. Es ist keine ideale Lösung, aber definitiv eine Problemumgehung, bis wir das nächste Xcode-Update erhalten.
quelle