代码之家  ›  专栏  ›  技术社区  ›  Maurits van Beusekom

flutter plugin`geoclocator swift.h`找不到文件

  •  4
  • Maurits van Beusekom  · 技术社区  · 6 年前

    我已经创建了一个小的颤振插件,可用于监测颤振应用程序中的位置变化(来源: https://github.com/baseflowit/flutter-geolocator )。在使用作为项目结构一部分的示例项目(由flutter cli生成)进行了广泛的测试之后,我们决定发布该插件,以使其可供世界使用。

    现在,我们收到一些反馈,当您将在线DART软件包repo中的软件包包含到您的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应用程序时,以及使用 flutter build ios --release .

    我有点迷路了,这个错误是从哪里来的 example 应用程序是 Geolocator 工程顺利进行。我知道 geolocator/geolocator-Swift.h 文件是自动生成的,所以在我看来,文件不会最终出现在最后的DART包中。要运行最后的DART包,我运行了以下命令:

    flutter packages pub publish

    这是的输出 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)
    

    任何帮助都将不胜感激。

    2 回复  |  直到 5 年前
        1
  •  5
  •   Mikkel Ravn    6 年前

    $ flutter create -i swift my_app
    

    geolocator: pubspec.yaml my_app 对于iOS,我可以使用最新的flutter beta。

    [✓] Flutter (Channel beta, v0.5.1, on Mac OS X 10.13.5 17F77, locale en-US)
    
        2
  •  6
  •   Bé Tập Code    5 年前

    添加以下行:

    use_frameworks! # required by Geolocator
    

    指开发人员机器上的绝对路径。

    use_frameworks! # required by Geolocator
    system('rm -rf .symlinks')
    system('mkdir -p .symlinks/plugins')
    

    config.build_settings['SWIFT_VERSION'] = '4.2'
    

    post_install do |installer|
      installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
          config.build_settings['ENABLE_BITCODE'] = 'NO'
          config.build_settings['SWIFT_VERSION'] = '4.2' # added this
        end
      end
    end
    
    推荐文章