所谓的二进制化,其好处是可以将将代码转化为framework或.a文件,增快项目编译速度,同时可以隐藏核心代码实现。
二进制化的具体实施方案有如下两种:
一、手动实现
1、首先在私有库中建立一个静态库工程;同时新建products文件夹用来存放framework文件。具体结构如图所示:
同时在静态库工程中引用(引用,而不是拷贝,方便以后修改代码)私有库代码,然后编译(编译前注意修改architecture only、mach-o type、release环境、暴露.h等)即可得到framework 文件。然后在私有库目录中添加products文件存放framework 文件。
2、修改podspec文件,和上述路径对应即可
核心代码就两行:
s.source_files = 'AutomaticTestLib/Classes/**/*.h'
s.vendored_frameworks = 'AutomaticTestLib/Products/**/*.framework'
修改完之后,将私有库添加至私有spec。
Done!
然后在宿主工程中调用即可,最终调用效果如下:
二、自动实现
工具:cocoapods-packager
安装:sudo gem install cocoapods-packager
命令:pod package spec文件名称 --library --exclude-deps --spec-sources=spec文件私有索引库路径,https://github.com/CocoaPods/Specs.git