简介
一键化集成工具,用于集成flutter开发环境到现有APP中
使用说明
版本变更
-
0.1.4 避免自定义libflutter.so被替换
-
0.1.3 【修改】- 使用 split-debug-info 优化 app.so 大小
-
0.1.1 适配Flutter 1.17.2,不兼容Flutter 1.12.13
-
0.0.12 适配Flutter 1.12.13+hotfix.8
环境配置
Flutter 1.12.13+hotfix.8
Cocoapod 1.8.4
nodejs
Android Studio 3.6.1
!!!请确保flutter pub get
、flutter run
、npm install
和pod install
命令正常运行
flutter-integration-tool
工具
安装npm install flutter-integration-tool -g
编写配置
{
// 必要
"android_dir": "Android工程目录,相对路径或者绝对路径均可",
"flutter_dir": "Flutter工程目录,默认为对应平台工程目录下的flutter_project,注意名称不能带-号,否则无法创建成功",
"ios_dir": "IOS工程目录,相对路径或者绝对路径均可",
// 可选
"platform": "默认平台,设置后可以简化命令,不输入-i,-a,如ios",
"android_module_name": "Android主Module名称",
"exclude_plugins": "不打包的插件名,如flutter_integration",
"abi_filter": "android so打包路径,配置后只打包该配置的,如armeabi-v7a,arm64-v8a"
}
android使用示例
进入一个目录,分别下载以下三个项目到同一目录下(注意:要同一目录下)
- 下载demo工程
git clone https://github.com/ouyanx/flutter-integration-demo-android.git
- 进入demo工程目录,执行命令
cd flutter-integration-demo-android
// 配置文件
vim config.cfg
// 输入
{
"platform": "android",
"android_dir": ".",
"flutter_dir": "./flutter_project",
"ios_dir": ".",
"android_module_name": "app"
}
// 生成
flutter-integration-tool create
-
执行成功后,打开工程,同步gradle文件,把TestActivity.java的第7,18,36-55,58-107行的注释打开,运行即可点击首页的打开新页面,打开flutter的页面。
-
切换不同模式
cd flutter-integration-demo-android
// 源码集成
flutter-integration-tool mode -s -a
// 产物集成
flutter-integration-tool mode -p -a
切换模式时Android Studio可能会有缓存,报以下错误:
Program type already present:
可以执行Build -> Clean Project
,和File -> Invalidate Caches / Restart
,清除缓存重新尝试
iOS使用示例
进入一个目录,分别下载以下三个项目到同一目录下(注意:要同一目录下)
- 下载demo工程
git clone https://github.com/ouyanx/flutter-integration-demo-ios.git
- 进入demo工程目录,执行命令
cd flutter-integration-demo-ios
// 配置文件
vim config.cfg
// 输入
{
"platform": "ios",
"android_dir": ".",
"flutter_dir": "./flutter_project",
"ios_dir": "."
}
// 生成
flutter-integration-tool create
- 执行成功后,打开工程,修改AppDelegate.m第11行的TEST_FLUTTER为1,运行即可。App的第二个tab为flutter页面
open Example.xcworkspace
// AppDelegate.m:11
#define TEST_FLUTTER 1
- 切换不同模式
cd flutter-integration-demo-ios
// 源码集成
flutter-integration-tool mode -s -i
// 产物集成
flutter-integration-tool mode -p -i