最近几天公司的打包机打包iOS项目一直失败,索性就去查看了一下打包日志,大多数报错都是cocoapods处理 Timed out。
虽然我本地pod update也有很多时候是失败的,但是好歹还有成功的,这个打包机就一直失败,很是气人。既然是下载三方库超时,那我就把这些三方库源码拿来,私有化到我们公司的gitLab上。
pod私有库的制作并不陌生,只不过以前是把自己的组件封装成pod私有库,现在是把三方的pod库私有化一遍。不熟悉pod私有库制作的同学可以去网上搜一下,这里我介绍一下私有化三方库的方式和注意点。
三方的pod库大致可以分为两种:
一、是github上公开的三方库,可以下载源码库的,比如:AFNetworking、SDWebImage等,这类三方库我们可以选择直接git clone到自己电脑上,进入到源码目录下,然后通过 git remote set-url origin "{你的私有库源码存放仓库地址}" 来切换Git远端地址为私有库地址,然后将三方库的源码推送到自己的私有仓库中,同时也要把tag推送上去。接下来修改源码仓库中的.podspec文件中source为自己的私有库地址。最后将.podspec文件推送到自己创建的存放podspec文件的索引仓库中即可。这个过程中,如果遇到不能验证***branch错误,可以git tag查看一下tag记录,如果没有tag,创建一个tag比如:v0.0.1,推送上去,再次验证。(ps:还有一种粗暴的方式,就是只需要把三方库的核心文件(最终你项目中要用的文件)拿来,放到自己的私有库中,重新命名也行,版本号也可以不跟随,自己知道怎么回事就行)
二、是企业的三方库,比如腾讯的WechatOpenSDK、Bugly和极光的JPush、JCore等,这类三方库,我们在私有化的时候,就需要注意的是:这类库中基本都是.a 或者.framework作为库文件存在的,原因是企业的SDK都是保密的,不想让你看到源码啊,不然别人怎么赚钱呢?好吧,扯多了。这里有个重要的环节就是,我们需要知道别人pod库中都添加了哪些配置,也就是podspec文件中都写了哪些配置项。公开的三方库,我们可以很直观的看到podspec文件的配置,企业的私有库就不行了。但是我们可以通过先pod一下三方库,看看他都有哪些依赖。如图:
这里的OTHER_LDFLAGS就是对一些系统库的依赖,如果想知道他依赖哪些三方库,可以单独pod一下这个库,看看都有哪些三方库依赖。至此,私有化三方库就介绍完了,如果小伙伴们还有疑惑,可以私聊,一起讨论讨论。