CocoaPods清理本地缓存

使用CocoaPods集成Realm的时候,发现了一个问题。Xcode编译项目,提示找不到impl/collection_change_builder.hpp等两个文件。

到realm-cocoa仓库上看了下,有一个哥们遇到了和我相同的问题,提了一个issue,开发团队的回复没有解决问题,于是这个哥们换用Carthage来集成Realm了。开发团队提到了其中一种解决方案就是清除CocoaPods的缓存。我尝试后确实可以解决问题。

  1. 打开终端,输入pod cache list,会列出所有本地已经缓存的第三方库。
  2. 这时可以在列表中找到Realm和RealmSwift等……赫然地看到Realm版本是1.0.1,而我们需要的版本是1.0.2,那么这应该就是导致之前错误的原因吧。
  3. 在终端中输入pod cache clean Realm,我这里发生编译错误的是Realm,如果有必要(有依赖的情况)可以清理掉其他相关的第三方库。
  4. 到项目目录中,重新执行pod install,此时CocoaPods会从远程仓库重新拉取代码。

需要注意的一点是,很多人在执行pod install的时候喜欢在后面加上--no-repo-update参数,这个参数的意思是不从远端更新本地的CocoaPods的Specs目录,也就是~/.cocoapods,这个目录存放的并不是所有缓存的第三方库,而是各个第三方库的配置文件,每个版本对应一个.json文件。如果此处的第三方库配置文件是正确的,那么pod install --no-repo-update的时候,会从正确的配置文件中的位置拉取正确的代码。