iOS集成Flutter

480 阅读1分钟

在已有的iOS项目中集成Flutter, 可以使我们的iOS项目中的部分界面/功能可以通过Flutter来实现

  1. Xcode创建iOS项目(这里项目的名称是iOSFlutter, 使用cocoapods)

  2. 通过终端命令在指定目录(iOS项目同级的目录)创建 flutter module. (这里的 flutter module 名字为myfluttermodule) flutter create -t module myfluttermodule

    文件目录如图

  3. Xcode配置

  • 将项目 BitCode 选项设置为 NO , Flutter 目前还不支持
    BitCode选项设置为NO
  • 创建配置衔接文件 在iOS项目中新建Config文件夹, 在该文件夹下创建Configuration Settings File文件, 名为Flutter.xcconfig. Debug.xcconfig. Release.xcconfig 三个配置文件
    Config文件夹目录
    Xcode中创建Configuration Settings File文件

Flutter.xcconfig 文件内容

//Flutter.xcconfig,  这里填写前面建立的myfluttermodule 的Generated.xcconfig的路径
#include "../../myfluttermodule/.ios/Flutter/Generated.xcconfig"
ENABLE_BITCODE=NO

Debug.xcconfig 文件内容

//pod路径
#include "Flutter.xcconfig"
#include "Pods/Target Support Files/Pods-iOSFlutter/Pods-iOSFlutter.debug.xcconfig"

Release.xcconfig

#include "Flutter.xcconfig"
#include "Pods/Target Support Files/Pods-iOSFlutter/Pods-iOSFlutter.debug.xcconfig"
FLUTTER_BUILD_MODE=release

  • 修改Xcode Project的环境配置

    Xcode Project环境配置

  • 添加要执行的脚本内容

"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" build
"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" embed

添加执行脚本

  1. 运行Xcode, 正常情况下会在iOS项目目录下生成一个Flutter文件夹(如果没有生成, 那我们就手动建一个文件夹,把 myfluttermodule/.ios/Flutter下的App.framework. egine复制到该文件夹下 )

    Flutter文件目录

  2. 到这里, 就可以直接执行已集成Flutter的Xcode的项目了