美文网首页
Flutter与iOS混编

Flutter与iOS混编

作者: 娜娜的世界123 | 来源:发表于2020-10-09 16:41 被阅读0次

    方案一

    1.创建flutter module
    flutter create --template module my_flutter

    2.配置Podfile文件,引入flutter module
    flutter_application_path = '../my_flutter'
    load File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb')

    3.执行pod install

    4.引用Flutter头文件
    #import <Flutter/Flutter.h>
    #import <FlutterPluginRegistrant/GeneratedPluginRegistrant.h>

    5.示例


    图片.png

    6.效果


    图片.png

    7.注意
    1)报错找不到podhelper.rb文件
    需要通过vscode或者其他编译器运行flutter项目,会生产podhelper.rb文件

    方案二

    将flutter以framework的形式通过Cocoapods引入iOS工程

    1.创建外层文件夹,包含ios工程 & pod工程


    图片.png

    2.在pod工程中导入flutter工程


    图片.png

    3.在flutter工程中即flutter_module_for_ios,创建move_file.sh,此脚本为了自动生成build产物,然后将所有的framework汇总到ios_frameworks中

    4.配置spec文件


    图片.png
     s.static_framework = true
      p = Dir::open("ios_frameworks")
      arr = Array.new
      arr.push('ios_frameworks/*.framework')
      s.ios.vendored_frameworks = arr
    

    5.iOS工程可以通过引入本地Pod的方式,进行使用
    配置Podfile文件

    # Uncomment the next line to define a global platform for your project
    # platform :ios, '9.0'
    
    target 'FlutterProject' do
      # Comment the next line if you don't want to use dynamic frameworks
      use_frameworks!
    
      # Pods for FlutterProject
      pod 'MyFlutterPod', :path => '../MyFlutterPod'
    
      target 'FlutterProjectTests' do
        inherit! :search_paths
        # Pods for testing
      end
    
      target 'FlutterProjectUITests' do
        # Pods for testing
      end
    
    end
    
    

    6.执行pod install

    知识点总结

    1.flutter工程使用插件(三方库)
    需要配置pubspec.yaml文件
    例如:

    dependencies:
      flutter:
        sdk: flutter
      cupertino_icons: ^0.1.2
      #添加 数据持久化插件  https://pub.flutter-io.cn/packages/shared_preferences
      shared_preferences: ^0.5.4+3
    

    配好后,执行命令安装flutter pub get

    2.编译flutter生成debug环境编译产物
    flutter build ios --debug // 编译debug产物
    或者
    flutter build ios --release --no-codesign // 编译release产物

    3.创建pod模版
    pod lib create xxx

    参考文献

    http://www.cocoachina.com/articles/464387

    相关文章

      网友评论

          本文标题:Flutter与iOS混编

          本文链接:https://www.haomeiwen.com/subject/zpylpktx.html