Flutter组件开发

背景 :之前的项目是直接建立的flutter工程,除了推送之外全是flutter的代码,当随着项目的发展,我发现项目需要接入RN的一个SDK的时候,当场懵逼。于是乎,决定用iOS原生的平台,把flutter作为SDK引入。

官网给的方案需要修改xcode的配置,还要引入脚本,会污染主工程的环境,因此采用引入编译产物的做法。


image.png

因为编译产物会根据flutter的版本、证书、模拟器等发生变化,因为flutter的原生代码也建一个仓库进行管理。


image.png

步骤
一、配置flutter环境
按照官网上配置,就不多比比了。
二、获取编译产物
1、 flutter create -t module flutter_library 创建flutter项目
2、在 flutter 项目目录下,执行 flutter build ios 针对 Flutter 项目进行编译打包,生成 Flutter 编译产物。
3、建立git私有库,用于存放flutter的编译产物。
4、把lutter_library工程下隐藏文件.ios打开。找到/.ios/Flutter/FlutterPluginRegistrant,把该类放到私有库的Classes中,和replace放到一起。
5、建一个Frameworks文件夹,和Classes同级目录


屏幕快照 2019-12-27 下午6.55.26.png

6、把上述编译的Flutter.framework和App.framework放到私有库的frameworks中


屏幕快照 2019-12-27 下午6.56.40.png

7、修改podspec。这一步很关键,就是在这一步卡了很久。
一下是我最终的podspec 记得把homepage和 s.source 换成自己的git首页地址。

Pod::Spec.new do |s|
  s.name             = 'FlutterKit'
  s.version          = '0.1.0'
   s.summary          = 'This is A iOS Private pod lib Flutter.'
  s.description      = <<-DESC
                       This is a iOS Private pod lib FOR PING AN HEALTH CLOUD COMPANY LIMITED.
                       Create by user_name - user_email
                       All Rights Reserved.
                       DESC

  s.homepage         = 'https://github.com/user_name/FlutterKit'
  s.license          = {
      'type': 'Copyright',
      'text': 'Copyright 2011 - 2018 pajk.cn. All rights reserved.\n'
  }
  s.author           = { 'xxx' => 'xxx' }
  s.ios.deployment_target = '8.0'
  s.source = { :git => 'https://github.com/user_name/FlutterKit', :tag => s.version.to_s }
  s.source_files = 'FlutterKit/Classes/**/*.{*}'
  s.vendored_frameworks = '**/FlutterKit.framework','FlutterKit/Frameworks/Flutter.framework','FlutterKit/Frameworks/App.framework'

然后就是把内容commit 之后就是git tag 0.1.0 git push --tags

引用
引用

你可能感兴趣的:(Flutter组件开发)