组件30-二进制:二进制化-远程仓库的代码自动生成framework

复习:
二进制解决的是编译慢的问题,直接编译成一个二进制,省去编译的过程。
静/动态库的操作

二进制实践:

1、手动打包,组件库测试工程添加一个.framework静态库,拖入引用代码。编译成静态库放在和源码文件层次的同一个层次的文件夹Products中,头文件要单独弄一份出来。源码和二进制的切换。创建库工程或者创建复合工程,目的就是拿到.framework。

2、自动打包方案:就是本篇要说的——对已经上传到远程的、打好标签的本地源码进行二进制化,17'18''。

一、cocoapods-packager

1. 作用:快速完成类库的打包。仅仅针对于pod模板库,找到spec,进行打包;
2. 安装:sudo gem install cocoapods-packager ,如果安装成功但使用package命令时显示没有package,考虑重装cocoapods。
3. 使用:环境变量选中是源码 pod package spec文件名(注意:是在本地模板库文件夹下,使用该命令,即本地有podspec文件的那个文件夹下,该命令会根据podspec中的信息去打包,见《快速打包命令在哪个文件夹下使用.png》)。
4.使用快速打包前提:该工程是模板库工程;已经上传到远程;已经打好标签。
5.打好包的文件在何处:在podspec同一个文件下,即执行快速打包命令的那个文件夹下,继续进入ios/XX.framework/version/A文件夹中。
6.包信息:模拟器和真机的所有CPU构架
7.小问题:如果pod update安装一下,发现安装的不是最新tag版本,应该变成二进制库的没有变成二进制库,那么,方案一:pod cache clean -all、删除pod文件夹、删除Podfile.lock 、删除.workspace;如果方案一无法解决,那就方案二:pod repo update (把库更新下,不过时间会比较长)

快速打包命令在哪个文件夹下使用.png
环境变量选中源码.png
  • 直接pod package spec文件名,如果有环境变量,则会报错:podspec has binary-only depedencies, mangling not possible.
  • 有环境变量的一定要加上环境变量:IS_SOURCE=1 pod package XMGSegmentBar.podspec
  • 生成XMGSegmentBar-0.1.0文件夹,里面有生成的库。
  • 把生成好的二进制库放入products文件夹,这个文件夹是我们规定好存储二进制文件的。
  • git提交到远程仓库,至于XMGSegmentBar-0.1.0文件夹是快速打包生成的,可删可不删,没什么用了。
  • 宿主工程使用。pod update --no-repo-update应该会有两个库会变成二进制,因为这两个做了二进制,且默认安装二进制。

二、自动打包都省略了哪些步骤

  1. 在库测试工程中添加targets(即.framework库);
  2. 修改.framework库对应的设置(全构架、静态库、暴露头文件、release版本);
  3. 拖文件到静态库对应的文件夹中。
~操作库的一些命令:
  1. 查看库的构架:lipo -info 库名
  2. 裁剪库:lipo -remove armv7s XMGSegmenBar -output XMGSementBarRemove7s (XMGSegmenBar、XMGSementBarRemove7s都是库名,从库中拆减掉armv7s 构架)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容