第三方库中引用的其他第三方库没有指定版本引起的冲突

第三方库中引用的其他第三方库没有指定版本引起的冲突_第1张图片

首先将问题描述清楚点:
就是在开发过程中肯定会用到第三方库,但是有的第三方库并不是时刻都有人去维护的。这里就我遇到第三方库LBPhotoBrower中的podspec文件中依赖的SDWebImage库没有指定版本,导致pod update的时候,SDWebImage最新库与LBPhotoBrower中的代码冲突,导致报错。提示的是一个头文件找不到,我们又不想去换成另外的第三方库,这里就可以将SDWebImage的库版本指定为比较低的版本(在不影响正常使用的情况下)。

  • 1、首先想到的是直接在podfile中指定SDWebImage的版本,可行但不是我们想要的,如果是组件化的项目的话,这样就会显得很鸡肋,相当于用到这个库的地方的组件,在podfile中都需要去指定一下版本。不是我们想要的效果---------pass
  • 2、第二方案就是把LBPhotoBrower库下载到本地,直接修改代码,拖到工程中使用。以后都不用pod集成这个库,这样的话,也不是我们想要的效果---------pass
  • 3、想要指定SDWebImage的版本,就要知道哪里依赖了这个库,这里我们说的是LBPhotoBrower这个库依赖了,那我们就需要去LBPhotoBrowerpodspec文件里面去修改这个依赖指定版本了。具体的步骤:
    ①:先将LBPhotoBrowerpodspec文件下载到本地,修改里面关于SDWebImage的依赖代码。如图:
    第三方库中引用的其他第三方库没有指定版本引起的冲突_第2张图片
    未修改的

    修改成:
    第三方库中引用的其他第三方库没有指定版本引起的冲突_第3张图片
    修改过的

    ②、保存好后,将这个podSpec文件传到我们自己私有的repos里面。首先终端cd到podspec文件所在的文件夹,然后终端输入:
    上传到私有库

    其中红色线的source源就是我们现在组件化的私有库。
    ③、在pod update之前,要在podfile文件里面,加上自己私有库的source
    podfile文件指定source源

你可能感兴趣的:(第三方库中引用的其他第三方库没有指定版本引起的冲突)