关于`[!] Found multiple specifications`类问题的产生和处理方法

最近又要准备面试了,重新捡起来cocoapods,突然发现了这个问题,看了网上说的很多解释,但感觉总是差强人意,以下是我的一些见解和疑惑,遇到类似问题的同学可以一起参考讨论一下。
原因:
使用pod spec lint检验私有库是否合法时,如果不指定source,则cocoapods会默认创建仓库trunk,然后将使用到的依赖库的索引信息从远端拉到本地的trunk仓库,用于校验。
当提交私有的pod到自己的私有仓库时,cocoapods会检查~/.cocoapods/repos/下的索引,发现trunk仓库中的索引和master中的有重复情况,就会导致[!] Found multiple specifications类问题的产生。
处理方法:
1)删除~/.cocoapods/repos/路径下的trunk仓库;
2)每次检查.podspec时,即使用pod spec lint时,指定公共spec的source,http/https或git都可以,即pod spec lint --use-libraries --allow-warnings --sources='https://github.com/CocoaPods/Specs.git'pod spec lint --use-libraries --allow-warnings --sources='[email protected]:CocoaPods/Specs.git'
其他:
为什么每次检查.podspec时,cocoapods要把检查过的索引,单独放到一个仓库,是方便后续编译检查时,获取库不用查找全部spec文件么

你可能感兴趣的:(关于`[!] Found multiple specifications`类问题的产生和处理方法)