混编配置

1、Native-Flutter混编基础配置
具体配置参考如下文章
flutter-native混编
2、使用git submodule 管理flutter模块

  • 进入工程根目录
  • git submodule add [flutter repo] [flutter dir]
    通过git submodule add命令,为工程添加flutter子工程,flutter子工程通过git submodule子命令集管理,常用命令如下:
git submodule add [git repo] [target dir] //为工程添加子模块
git submodule init
git submodule update --remote //作用类似 git fetch 
  • git submodule init
    初始化submodule
  • git submodule update –remote
    拉取子工程远端代码

3、进入到flutter工程目录,拉取flutter远端代码,并初始化flutter工程

  • git pull 在submodule目录下,就相当于git 工程根目录下,使用git命令管理项目,能进行任意git操作
  • flutter packages get 初始化flutter工程
    这个操作本质是通过flutter cli 命令,调用相应脚本,根据.yaml文件,完成flutter工程初始化
    对应的脚本在如下目录。
    $FLUTTER_ROOT/flutter/packages/flutter_tools
    目录下包含iOS、安卓、fushia等对应平台的配置脚本及相关资源文件。
    4、回到iOS工程目录下,执行 pod install,将配置完成的flutter module模块,通过前期配置的脚本,依赖入当前工程。

iOS-issues

1、iOS-flutter 混编项目,xcode运行到一半(在编译flutter模块的时候),停止xcode并重新运行,报flutter相关文件找不到

  • cd my_flutter
  • rm -rf .ios
  • flutter build ios
  • flutter packages get
  • cd ..
  • pod install

2、flutter_assets文件夹未能正确生成(iOS工程里,资源文件需要按要求配置,使用的时候才能寻址找到),这个文件夹用来存放flutter侧相关资源。

错误信息:
Failed to find assets path for "flutter_assets"
[VERBOSE-2:engine.cc(111)] Engine run configuration was invalid.
[VERBOSE-2:FlutterViewController.mm(462)] Could not launch engine with configuration.
flutter: Observatory listening on http://127.0.0.1:54632/

以下是一种解决方案,解决了我目前遇到的问题(引用到的flutter三方库并在flutter侧添加了图片资源,未能生成flutter_assets文件夹)

  • flutter channel master // 切换到master channel
    不同的channel,对应不同版本的flutter,配置,静态/动态库有所区别
  • 进入到flutter工程文件根目录

    frc 200d706abca41da9a5900a7e1fd75f56 - Flutter-工程通过gitsubmodule的形式集成flutter
    flutter 目录
  • rm -rf .ios
    .ios文件夹包含用于启动flutter工程的基础配置及iOS壳工程,正确生成的flutter_assets就位于该工程下。
  • flutter build ios
    master channel重新生成.ios文件夹
  • 回到native iOS 工程目录下
  • pod install

Android-issues

Flutter-Android趟坑笔记

Flutter-工程通过gitsubmodule的形式集成flutter