问题描述:
有时候我们自己的某个pod库修改了某些代码,但是不想更新tag,就把原来的tag删了加到了最新的代码上。所以说就是tag没更新代码更新了。这时我们在项目上去更新这个pod的时候会发现代码根本没更新。
原因分析:
首先当你需要安装某个pod库的时候,会在podfile里写上那个库名和对应的版本号,如:
pod 'AFNetworking', '2.2' ,然后cocoapods会去~/.cocoapods/repo/master路径下进行搜索这个库的podspec文件(一个tag对应一个podspec文件),里面会有这个库的源代码地址,然后根据对应的tag下载源代码到cocoapods的缓存目录~/Library/Caches/Cocoapods。然后再把代码拷贝到你工程的Pods目录里。 所以当你再次安装这个pod第三方库的时候,cocopods会去缓存目录里查看有没有对应tag的源码,如果有的话就直接使用这个缓存的源码。当然如果你的工程的Pods有这个源码的话就直接使用了,也不会更新。
解决办法:
删除缓存目录~/Library/Caches/Cocoapods里对应的源码。
删除工程目录里的Podfile.lock文件。
删除工程Pods目录下对应的源码。
问题总结:
当pod工程有更新的时候最好重新打一个高版本的tag而不是将原来低版本的tag删除,再重新打上这个低版本的tag,避免造成上面的问题。