返回
iOS项目中使用Flutter Module依赖新方案 - 远程zip & Git,巧妙利用本地podspec中转
IOS
2024-01-06 18:58:28
在iOS项目中集成Flutter Module,通常采用CocoaPods作为依赖管理工具。传统方案是将Flutter Module作为Podspec依赖,直接从远程仓库拉取编译产物。然而,此方案存在下载速度慢、版本管理不便等痛点。
为了解决这些问题,本文提出了一种新的依赖方案:Git子模块 + 本地podspec中转远程zip & git。具体实现步骤如下:
-
初始化Git子模块
在iOS项目中,使用以下命令初始化Git子模块:
git submodule add https://github.com/your-flutter-module.git git submodule update --init --recursive
-
创建本地podspec
在iOS项目中,使用以下命令创建本地podspec文件:
pod lib create --name your-flutter-module
-
修改本地podspec
打开本地podspec文件,修改以下内容:
s.dependency = 'Flutter' s.source_files = 'your-flutter-module'
-
创建远程zip
在Flutter Module的构建产物中,生成一个包含所有编译产物的zip文件。例如,对于iOS真机架构,zip文件应包含以下内容:
Flutter/App.framework/App Flutter/Flutter.framework/Flutter
-
上传远程zip
将生成的zip文件上传到远程服务器,并获取其下载链接。
-
修改本地podspec
再次打开本地podspec文件,修改以下内容:
s.dependency = 'Flutter', 'your-flutter-module-zip' s.source_files = 'your-flutter-module'
-
替换你的Flutter Module zip下载链接
将本地podspec中的"your-flutter-module-zip"替换为步骤5中获取的zip文件下载链接。
-
安装依赖
在iOS项目中,使用以下命令安装依赖:
pod install
-
使用Flutter Module
在Swift或Objective-C文件中,使用Flutter Module方法即可。例如:
let flutterEngine = FlutterEngine(name: "your-flutter-module")
此方案充分发挥了远程zip文件下载速度快的优势,同时利用Git版本管理特性,确保Flutter Module的版本与远程仓库保持一致。在iOS项目中使用Flutter Module时,推荐采用此方案,以提升开发效率和稳定性。