Flutter: Pod-Installationsschritt schlägt fehl, wenn er mit „--local-engine“ in einem neu erstellten Projekt ausgeführt wird

Erstellt am 3. Apr. 2017  ·  3Kommentare  ·  Quelle: flutter/flutter

Schritte zum Reproduzieren

  1. flutter create foobar
  2. cd foobar
  3. Öffnen ios/Runner.xcworkspace und richten Sie das Signieren ein
  4. flutter run --local-engine ios_debug_unopt -d mydevice -v

Ausgabe:

[ +592 ms
] Launching lib/main.dart on the Doom Melon in debug mode...

[   +1 ms] /Users/cbracken/.homebrew/bin/idevicesyslog
[   +2 ms] Building Runner.app for 956919950000126a7f5aaf03cbd5fbc18ac75e65
[   +7 ms] xcodebuild -version
[ +101 ms
] Exit code 0 from: xcodebuild -version
[        ] Xcode 8.3
           Build version 8E162
[   +1 ms] python -c import six
[  +33 ms] Trying to resolve native pub services.
[   +1 ms] Looking for YAML at 'pubspec.yaml'
[  +37 ms] No services specified in the manifest
[        ] Found 0 service definition(s).
[        ] Copying service frameworks to '/Users/cbracken/src/text_input/ios/Frameworks'.
[        ] Creating service definitions manifest at 'ios/ServiceDefinitions.json'
[  +39 ms] pod --version
[ +362 ms
] pod --version
[ +360 ms
] Exit code 0 from: pod --version
[        ] 1.2.0
[   +1 ms] Running pod install...

[   +1 ms] [ios/] pod install
[ +663 ms
] Analyzing dependencies
                    Fetching podspec for `Flutter` from `/Users/cbracken/src/flutter/engine/src/out/ios_debug_unopt`
                    [!] No podspec found for `Flutter` in `/Users/cbracken/src/flutter/engine/src/out/ios_debug_unopt`
[   +2 ms] 'flutter run' took 4061ms.
Error running pod install: Exit code 1 from: pod install

#0      throwToolExit (package:flutter_tools/src/base/common.dart:29)
#1      _runPodInstall (package:flutter_tools/src/ios/mac.dart:365)
<asynchronous suspension>
#2      buildXcodeProject (package:flutter_tools/src/ios/mac.dart:156)
<asynchronous suspension>
#3      IOSDevice.startApp (package:flutter_tools/src/ios/devices.dart:205)
<asynchronous suspension>
#4      HotRunner.run (package:flutter_tools/src/run_hot.dart:200)
<asynchronous suspension>
#5      RunCommand.runCommand (package:flutter_tools/src/commands/run.dart:281)
<asynchronous suspension>
#6      FlutterCommand.verifyThenRunCommand (package:flutter_tools/src/runner/flutter_command.dart:151)
<asynchronous suspension>
#7      RunCommand.verifyThenRunCommand (package:flutter_tools/src/commands/run.dart:196)
<asynchronous suspension>
#8      FlutterCommand.run (package:flutter_tools/src/runner/flutter_command.dart:121)
#9      CommandRunner.runCommand (package:args/command_runner.dart:194)
<asynchronous suspension>
#10     FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:261)
<asynchronous suspension>
#11     CommandRunner.run.<anonymous closure> (package:args/command_runner.dart:109)
#12     Future.Future.sync (dart:async/future.dart:208)
#13     CommandRunner.run (package:args/command_runner.dart:109)
#14     FlutterCommandRunner.run (package:flutter_tools/src/runner/flutter_command_runner.dart:157)
#15     run.<anonymous closure> (package:flutter_tools/executable.dart:140)
<asynchronous suspension>
#16     AppContext._run (package:flutter_tools/src/base/context.dart:76)
<asynchronous suspension>
#17     AppContext.runInZone.<anonymous closure> (package:flutter_tools/src/base/context.dart:66)
#18     _rootRun (dart:async/zone.dart:1120)
#19     _CustomZone.run (dart:async/zone.dart:1001)
#20     runZoned (dart:async/zone.dart:1465)
#21     AppContext.runInZone (package:flutter_tools/src/base/context.dart:65)
#22     run (package:flutter_tools/executable.dart:113)
<asynchronous suspension>
#23     main (package:flutter_tools/executable.dart:66)
<asynchronous suspension>
#24     main (file:///Users/cbracken/src/flutter/flutter/packages/flutter_tools/bin/flutter_tools.dart:8)
#25     _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:263)
#26     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:151)


[  +46 ms] ensureAnalyticsSent: 38ms
[   +1 ms] exiting with code 1
regression tool

Hilfreichster Kommentar

Hallo,
Ich hatte das gleiche Problem vor kurzem, aber ich habe einen anderen Ansatz verwendet.
Ich musste Pods mit pod update aktualisieren

Was zu diesem Fehler kam:

Please set FLUTTER_FRAMEWORK_DIR to the directory containing Flutter.framework

[!] Invalid 'Podfile' file: Please set FLUTTER_FRAMEWORK_DIR to the directory containing Flutter.framework.

 #  from /path-to/flutter/examples/platform_view/ios/Podfile:5
 #  -------------------------------------------
 #  if ENV['FLUTTER_FRAMEWORK_DIR'] == nil
 >    abort('Please set FLUTTER_FRAMEWORK_DIR to the directory containing Flutter.framework')
 #  end
 #  -------------------------------------------

Nach ein wenig Suche auf DuckDuckGo habe ich dies nach einer Lösung versucht

export FLUTTER_FRAMEWORK_DIR=/path-to/flutter/bin/cache/artifacts/engine/ios

und pod update und flutter run neu ausgeführt

Das schien zu funktionieren!

Gibt es eine bessere Methode, um dies zu lösen?

Danke

Alle 3 Kommentare

/cc @jakobr-google muss ich hier auf der Motorseite etwas tun?

Basierend auf ios/Podfile sieht es so aus, als würden wir nach einer Podspec für Flutter in $FLUTTER_FRAMEWORK_DIR suchen. Wenn ich ohne --local-engine laufe, scheint diese env var auf die zwischengespeicherte Engine-Position ( bin/cache/artifacts/engine/ios ) zu zeigen, wo ich ein Flutter.podspec sehe. Wenn es mit einer lokalen Engine ausgeführt wird, zeigt es auf das Build-Verzeichnis der Engine (in meinem Fall /Users/cbracken/src/flutter/engine/src/out/ios_debug_unopt ), wo ich diese Datei nicht sehe.

Ich konnte dies umgehen, indem ich eine Flutter.podspec mit Symlink in meinem lokalen Engine-Verzeichnis hinzufügte, aber es wäre schön, wenn dies automatisch funktionieren würde. (Es sei denn, ich vermisse irgendwo einen Schritt?)

Ja, wir sollten shell/platform/darwin/ios/framework/Flutter.podspec beim Build in das Build-Verzeichnis der Engine kopieren. Das habe ich beim Hinzufügen der Datei übersehen. Das Buildbot-Rezept lädt die Datei hoch, weshalb Sie sie im Cache sehen.

Hallo,
Ich hatte das gleiche Problem vor kurzem, aber ich habe einen anderen Ansatz verwendet.
Ich musste Pods mit pod update aktualisieren

Was zu diesem Fehler kam:

Please set FLUTTER_FRAMEWORK_DIR to the directory containing Flutter.framework

[!] Invalid 'Podfile' file: Please set FLUTTER_FRAMEWORK_DIR to the directory containing Flutter.framework.

 #  from /path-to/flutter/examples/platform_view/ios/Podfile:5
 #  -------------------------------------------
 #  if ENV['FLUTTER_FRAMEWORK_DIR'] == nil
 >    abort('Please set FLUTTER_FRAMEWORK_DIR to the directory containing Flutter.framework')
 #  end
 #  -------------------------------------------

Nach ein wenig Suche auf DuckDuckGo habe ich dies nach einer Lösung versucht

export FLUTTER_FRAMEWORK_DIR=/path-to/flutter/bin/cache/artifacts/engine/ios

und pod update und flutter run neu ausgeführt

Das schien zu funktionieren!

Gibt es eine bessere Methode, um dies zu lösen?

Danke

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen