美文网首页
iOS混编Flutter 之我见一

iOS混编Flutter 之我见一

作者: 小王在努力 | 来源:发表于2020-05-20 11:52 被阅读0次

1、前言

flutter是什么就不多做介绍了,目前使用纯flutter进行开发的大型项目还比较少,多数试水的还是打算和现有的原生代码进行混编,即将flutter页面嵌入到原生app中。而网上大部分都是讲安卓和flutter混编的经验,有iOS和flutter混编的也是比较老的方法,现在已经不再适用,这两天尝试了一下最新的方式,现将经验分享下,希望大家少走弯路。

2、条件

iOS 混编这边我们需要有两个工程: 第一个就是带Podfile文件的Xcode 工程(这里我们不介绍不懂得朋友可以查看Xcode创建Podfile),第二个就是flutter module工程。

3、创建flutter module工程

在开始嵌入flutter之前,首先需要创建flutter工程,但请注意,这里创建的是flutter module工程
这里提供最简单的创建方式:打开AndriodStodio File->New->New Flutter Project ->


选择flutter module

下一步


名称、sdk路径、工程路径
这里需要注意的是
name 工程名
sdkPath 就是flutter官网下载下来的flutter

project location 就是当前工程的路径 ->下文会用到
下一步


pakeage.png
finish
网络不好可能会处于创建加载中,这边需要我们耐心等待。

4、添加原生app对flutter的依赖

现在你创建过的flutter module文件结构如下图


flutter module路径

5、CocoaPod 添加依赖

我们需要使用iOS中的Cocoapods来添加flutter framework的依赖。
我们往Podfile添加flutter framework的依赖路径

flutter_application_path = '/Users/wangws1990/AndroidStudioProjects/flutter_app1/flutter_module'
load File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb')
target 'YourApp' do
install_all_flutter_pods(flutter_application_path)#flutter依赖
end

这时候我们的Podfile如下

source      'https://github.com/CocoaPods/Specs.git'
platform :ios, '10.0'
use_frameworks!

flutter_application_path = '/Users/wangws1990/AndroidStudioProjects/flutter_app1/flutter_module'#flutter_module路径
load File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb')

target 'MySwiftObject' do
  
  install_all_flutter_pods(flutter_application_path)#flutter依赖
  
  pod 'ATRefresh_Swift',:git => 'https://github.com/tianya2416/ATRefresh_Swift.git'
  pod 'ATKit_Swift',    :git => 'https://github.com/tianya2416/ATKit_Swift.git'
  pod 'Kingfisher'
  pod 'HandyJSON', '~> 5.0.0'
  pod 'SwiftyJSON'
  pod 'SnapKit'
  pod 'Hue'
  pod 'MBProgressHUD',:git => 'https://github.com/tianya2416/MBProgress.git'
  pod 'FDFullscreenPopGesture', '1.1'
  pod 'KLRecycleScrollView'
  pod 'VTMagic','~> 1.2.4'
  pod 'FMDB'
  pod 'YNPageViewController'
  pod 'YYCache'
  pod 'lottie-ios'
end

6.终端执行 pod install

cd到Podfile文件目录下执行pod install

任何时候,如果你修改了flutter工程中flutter pubspec.yaml中的三方依赖,在flutter工程所在目录,都需要执行flutter packages get来更新从podhelper.rb脚本中读取的plugins列表,然后在app所在目录执行 pod install 。

7、关闭bitCode

由于Flutter工程不支持bitcode,所以需要在xcode中设置Build Settings->Build Options->Enable Bitcode为NO。
加下去你就可以开始iOS和Flutter混编开发工作了。

下一篇
iOS和Flutter混编开发

相关文章

网友评论

      本文标题:iOS混编Flutter 之我见一

      本文链接:https://www.haomeiwen.com/subject/slrvnqtx.html