• 0

  • 514

Flutter 与 iOS 混编的三种方式

机器猫

机器学习

1 month ago

最近单位项目涉及到了flutter混编,就去官方文档学习了一下,这里做一下简单记录,顺便翻译翻译。方便大家互相学习。

开始

首先必须有的条件 一个文件夹里包含iOS项目、Flutter项目 没有Flutter项目,请自行执行以下命令行

cd 项目路径
flutter create --template module my_flutter
复制代码

如下图所示

image.png

Plan A

  1. 在iOS工程Podfile头部中添加
flutter_application_path = '../my_flutter'
load File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb')
复制代码
  1. 然后在添加
target 'MyApp' do
  install_all_flutter_pods(flutter_application_path)
end
复制代码
  1. 如图所示

    image.png
  2. pod install

Plan B 生成Framework 手动导入

  1. cd 路径/my_flutter
  2. flutter build ios-framework --output=这里拼接你想要输出framework的路径
  3. 此时在这个路径下会生成三个文件夹,分别是DebugProfileRelease
  4. 手动引入其中一个文件夹的App.frameworkFlutter.framework,并且BuildSetting -> Framework Search Paths中,要有刚刚输出framework的路径,比如:"$(SRCROOT)/../Debug"其实把文件夹拖进去也行,但是你要确定后续不会出现路径问题。
    image.png

Plan C 类似 Plan B,用cocoapods

  1. cd 路径/my_flutter

  2. flutter build ios-framework --cocoapods --output=这里拼接你想要输出framework的路径

  3. 这时候也会生成三个文件夹,分别是DebugProfileRelease,但是内容跟Plan B 不太一样

  4. 然后在PodFile中添加这么一行,`pod 'Flutter', :podspec => 'some/path/MyApp/Flutter/[build mode]/Flutter.podspec'。如图所示,当然这里只是做演示,暂时没有考虑相对路径的问题!!请注意。

    image.png
  5. 收到引入对应文件夹中的App.framework并且同Plan B中的第4、5步,做好确保

    image.png

end

免责声明:文章版权归原作者所有,其内容与观点不代表Unitimes立场,亦不构成任何投资意见或建议。

机器学习

514

Relevant articles

未登录头像

No more data