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 ->

下一步

这里需要注意的是
name 工程名
sdkPath 就是flutter官网下载下来的flutter
project location 就是当前工程的路径 ->下文会用到
下一步

finish
网络不好可能会处于创建加载中,这边需要我们耐心等待。
4、添加原生app对flutter的依赖
现在你创建过的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混编开发
网友评论