一、概要

cocoapods-tdf-bin功能点:

  • 组件二进制化,无入侵式支持组件二进制化,完全自动化,无需手动操作。致力于解决Ci打包速度慢、研发编译慢等编译问题。

cocoapods-tdf-bin插件所关联的组件二进制化策略:

  • 预先将打包成 .framework 的组件保存到静态服务器上,并在 install 时,去下载组件对应的二进制版本,以减少组件编译时间,达到加快 App 打包、组件发布等操作的目的。

二、准备工作

1. 安装插件

gem install cocoapods-tdf-bin # 没有权限用 sudo gem install cocoapods-tdf-bin

三、使用二进制插件

1. 环境搭建

使用二进制时,本插件需要提供以下资源:

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. 查看结果

4. 使用二进制

在Podfile文件中,加入这两行代码,对已经制作二进制的就会生效,自动转换二进制组件依赖:

plugin 'cocoapods-tdf-bin'

# 全部开启二进制
use_binaries!

set_use_source_pods [
# 需要源码调试的业务库
 ]

5. 使用 batch 命令

    pods [
      "TDFSunKitchenModule",
      "TDFRetailStock",
    ], "分支名"