首先将问题描述清楚点:
就是在开发过程中肯定会用到第三方库,但是有的第三方库并不是时刻都有人去维护的。这里就我遇到第三方库LBPhotoBrower
中的podspec
文件中依赖的SDWebImage
库没有指定版本,导致pod update
的时候,SDWebImage
最新库与LBPhotoBrower
中的代码冲突,导致报错。提示的是一个头文件找不到,我们又不想去换成另外的第三方库,这里就可以将SDWebImage
的库版本指定为比较低的版本(在不影响正常使用的情况下)。
- 1、首先想到的是直接在
podfile
中指定SDWebImage
的版本,可行但不是我们想要的,如果是组件化的项目的话,这样就会显得很鸡肋,相当于用到这个库的地方的组件,在podfile
中都需要去指定一下版本。不是我们想要的效果---------pass - 2、第二方案就是把
LBPhotoBrower
库下载到本地,直接修改代码,拖到工程中使用。以后都不用pod集成这个库,这样的话,也不是我们想要的效果---------pass - 3、想要指定
SDWebImage
的版本,就要知道哪里依赖了这个库,这里我们说的是LBPhotoBrower
这个库依赖了,那我们就需要去LBPhotoBrower
的podspec
文件里面去修改这个依赖指定版本了。具体的步骤:
①:先将LBPhotoBrower
的podspec
文件下载到本地,修改里面关于SDWebImage
的依赖代码。如图:
修改成:
②、保存好后,将这个podSpec
文件传到我们自己私有的repos
里面。首先终端cd到podspec文件所在的文件夹,然后终端输入:
其中红色线的source
源就是我们现在组件化的私有库。
③、在pod update
之前,要在podfile
文件里面,加上自己私有库的source
源