一、概要
cocoapods-tdf-bin功能点:
- 组件二进制化,
无入侵式
支持组件二进制化,完全自动化,无需手动操作。致力于解决Ci打包速度慢、研发编译慢等编译问题。
cocoapods-tdf-bin插件所关联的组件二进制化策略:
- 预先将打包成
.framework
的组件保存到静态服务器上,并在install
时,去下载组件对应的二进制版本,以减少组件编译时间,达到加快 App 打包、组件发布等操作的目的。
二、准备工作
1. 安装插件
gem install cocoapods-tdf-bin # 没有权限用 sudo gem install cocoapods-tdf-bin
三、使用二进制插件
1. 环境搭建
使用二进制时,本插件需要提供以下资源:
- 二进制私有源仓库(保存组件二进制版本 podspec);
- 静态资源服务器( FrameworkServer,附详细使用教程);
2. 初始化插件
pod bin init
====== dev 环境 ========
开始设置二进制化初始信息.
所有的信息都会保存在 /Users/imwcl/.cocoapods/bin_dev.yml 文件中.
%w[bin_dev.yml bin_debug_iphoneos.yml bin_release_iphoneos.yml]
你可以在对应目录下手动添加编辑该文件. 文件包含的配置信息样式如下:
---
configuration_env: dev
code_repo_url: [email protected]:ios/cocoapods-spec.git
binary_repo_url: [email protected]:ios/cocoapods-spec-binary.git
binary_download_url: http://iosframeworkserver-shopkeeperclient.app.2dfire.com/download/%s/%s.zip
binary_upload_url: http://iosframeworkserver-shopkeeperclient.app.2dfire.com/upload/%s/%s.zip
download_file_type: zip
按提示输入所属环境
、源码私有源、二进制私有源、二进制下载地址、下载文件类型后,插件就配置完成了。其中 binary_download_url
需要预留组件名称与组件版本占位符,插件内部会依次替换 %s
为相应组件的值。
cococapods-tdf-bin
也支持从 url 下载配置文件,方便对多台机器进行配置:
pod bin init --bin-url=https://github.com/su350380433/cocoapods-imy-bin-configs/raw/master/bin_dev.yml
四、制作二进制组件
1. 制作命令
可以直接使用插件的 pod bin auto
命令,在插件初始化配置完成后,目录下只要有包含podspec文件,根据podspec文件的version版本号会自动化执行build、组装二进制组件、制作二进制podspec、上传二进制文件、上传二进制podspec到私有源仓库。
pod bin auto
# --code-dependencies 为源码依赖
# --only-build 为只生成产物,不上传代码
# --all-make 为将所有依赖库都打包
# --use-modular-headers 为输出 framework 为modular-headers
# pod bin auto --code-dependencies --only-build --all-make --use-modular-headers
2. 二进制Podspec
会自动生成、上传,无需关心。
3. 查看结果
- 二进制存储服务:http://iosframeworkserver-shopkeeperclient.app.2dfire.com/frameworks?allinfo=true;
- 二进制私有源:https://git.2dfire.net/ios/cocoapods-spec-binary;
4. 使用二进制
在Podfile文件中,加入这两行代码,对已经制作二进制的就会生效,自动转换二进制组件依赖:
plugin 'cocoapods-tdf-bin'
# 全部开启二进制
use_binaries!
set_use_source_pods [
# 需要源码调试的业务库
]
5. 使用 batch 命令
pods [
"TDFSunKitchenModule",
"TDFRetailStock",
], "分支名"