iOS通过cocoapods集成flutter

2021-05-27  本文已影响0人  傲骨天成科技

参考:
iOS和flutter交互
当某天我们的公司需要在原生项目的基础上集成flutter,那么这时候我们需要怎么办呢?
下面我给大家介绍通过cocoapods集成的方式,前提是安装了flutter的运行环境哦
iOS通过pod的方式接入Flutter项目

一、首先进入项目的根目录创建flutter模块

image.png
// 进入根目录
cd /Users/fly/Desktop/sf_swift_flutter 

// 创建flutter模块 其中flutter_lib是flutter模块的名称,可以自己定义
flutter create -t module flutter_lib

二、创建完毕之后,通过cocoapods,在你的podfile中添加如下代码

# flutter相关的设置

#flutter模块的路径
flutter_application_path = '../flutter_lib'

load File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb')

# 引入三方

target 'iOS集成flutter' do

  use_frameworks!

  # oc 手写布局三方库
  pod 'Masonry', '~> 1.1.0'

  # 引入flutter
  install_flutter_engine_pod
  install_all_flutter_pods(flutter_application_path)

end

三、创建配置文件debug.xcconfig, release.xcconfig, flutter.xcconfig

image.png
在配置文件中,内容如下:

flutter.xcconfig内容如下:

// 具体路径根据自己项目所存放的位置而定
#include "../flutter_lib/.ios/Flutter/Generated.xcconfig"
ENABLE_BITCODE=NO

debug.xcconfig内容如下:

#include "Flutter.xcconfig"

// 如果使用了cocoapods,那么需要引入cocoapods的config文件,因为如果自定义了config,那么cocoapods的config就不会自动指定
// 为什么我下面注释掉了,因为下一步我在项目里指定了文件
//#include "Pods/Target Support Files/Pods-iOS集成flutter/Pods-iOS集成flutter.debug.xcconfig"

release.xcconfig内容如下:

#include "Flutter.xcconfig"
FLUTTER_BUILD_MODE=release

// 如果使用了cocoapods,那么需要引入cocoapods的config文件,因为如果自定义了config,那么cocoapods的config就不会自动指定
// 为什么我下面注释掉了,因为下一步我在项目里指定了文件
//#include "Pods/Target Support Files/Pods-iOS集成flutter/Pods-iOS集成flutter.release.xcconfig"

四、在项目中配置xcconfig文件

image.png

五、在原生项目中引入flutter的头文件就可以使用了

import Flutter

结语

下面我说一说我在使用原生加flutter的混合开发中总结的经验

1.使用xcode直接运行在模拟器上的项目当断开xcode的时候,模拟器上的项目依然可以跑flutter的内容

由于我们的电脑中安装了flutter的环境,所以断开了xcode之后,模拟器还可以从电脑上找到flutter的运行环境所以可以运行。

2.使用xcode直接运行在真机上的项目不断开xcode的时候,真机上的项目依然可以跑flutter的内容

由于没有断开xcode开发工具,它运行在电脑端,会去在电脑上找到flutter的运行环境,所以可以运行

3.使用xcode直接运行在真机上的项目断开xcode的时候,真机上的项目不可以跑flutter的内容

由于直接运行xcode打包在真机上的项目没有打包flutter的运行环境,所以不行

4.使用xcode打包成ipa文件,上传到fir.im上下载后的项目可以跑flutter的内容

由于打包成ipa文件的时候已经打包了flutter的运行环境,所以可以跑

上一篇下一篇

猜你喜欢

热点阅读