我创建了一个小的Flutter插件,该插件可用于监视Flutter应用程序中的位置变化(来源:https : //github.com/baseflowit/flutter- geolocator)。在使用作为项目结构一部分(由Flutter CLI生成)的示例项目进行了广泛的测试之后,我们决定发布该插件以使其对全世界可用。
现在,我们收到了一些反馈,当您将在线Dart软件包存储库中的软件包包含到Flutter应用程序中时,iOS版本将无法编译并返回以下异常:
/Users/maurits/Developer/flutter/.pub-cache/hosted/pub.dartlang.org/geolocator-0.0.2/ios/Classes/GeolocatorPlugin.m:2:9: fatal error: 'geolocator/geolocator-Swift.h' file not found
在调试模式下运行Flutter App时,以及使用制作iOS软件包时,都会发生此错误flutter build ios --release。
flutter build ios --release
由于example该Geolocator项目中的应用程序正常运行,因此我从该错误的出处有点迷茫。我知道该geolocator/geolocator- Swift.h文件是自动生成的,因此对我来说,该文件似乎没有最终出现在Dart包中。为了运行最终的Dart程序包,我运行了以下命令:
example
Geolocator
geolocator/geolocator- Swift.h
flutter packages pub publish
这是输出flutter doctor -v:
flutter doctor -v
[✓] Flutter (Channel beta, v0.5.1, on Mac OS X 10.13.5 17F77, locale en-NL) • Flutter version 0.5.1 at /Users/maurits/Developer/flutter • Framework revision c7ea3ca377 (4 weeks ago), 2018-05-29 21:07:33 +0200 • Engine revision 1ed25ca7b7 • Dart version 2.0.0-dev.58.0.flutter-f981f09760 [✓] Android toolchain - develop for Android devices (Android SDK 28.0.0) • Android SDK at /Users/maurits/Library/Android/sdk • Android NDK location not configured (optional; useful for native profiling support) • Platform android-28, build-tools 28.0.0 • ANDROID_HOME = /Users/maurits/Library/Android/sdk • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01) • All Android licenses accepted. [✓] iOS toolchain - develop for iOS devices (Xcode 9.4.1) • Xcode at /Applications/Xcode.app/Contents/Developer • Xcode 9.4.1, Build version 9F2000 • ios-deploy 1.9.2 • CocoaPods version 1.5.3 [✓] Android Studio (version 3.1) • Android Studio at /Applications/Android Studio.app/Contents • Flutter plugin version 25.0.1 • Dart plugin version 173.4700 • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01) [!] VS Code (version 1.24.1) • VS Code at /Applications/Visual Studio Code.app/Contents • Flutter extension not installed; install from https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter [✓] Connected devices (1 available) • iPhone X • 69C349CF-81E1-47E8-B35A-A149D885CE43 • ios • iOS 11.4 (simulator)
任何帮助将不胜感激。
由于该插件是使用Swift编写的,因此使用量较大的Flutter应用应基于Swift项目模板:
$ flutter create -i swift my_app
然后,使用最新的Flutter beta版将其添加geolocator:到iOS pubspec.yaml并my_app为iOS 构建即可。
geolocator:
pubspec.yaml
my_app
[✓] Flutter (Channel beta, v0.5.1, on Mac OS X 10.13.5 17F77, locale en-US)