在做私有库的时候,执行 push 操作的时候,报如题的错误。
pod repo push [repo] [podspec]
但是执行pod lib lint
的时候,本地验证却是可以通过的。
然后参考Stack Overflow和google的一些答案,都没能解决。这里就不贴尝试过的别的答案了。
最终经过反复调试,发现 是自己没有把本地版本、tag版本、远程提交版本同步好。也就是它们之间存在不一致。
我本地验证可以通过,但是没有通过git add .
把发生修改的文件提交到缓冲区,也没有git commit -m "XX"
提交到本地仓库。这个时候打的tag,是从本地仓库打的tag。所以就出现了和本地现在的代码不同步。
所以正确的步骤,是把代码都提交到本地仓库后,再重新打 tag 然后重新push就可以通过了。
因为之前都是用 source tree。现在直接上手git操作有点不太熟练,导致犯下了低级错误。这个问题确实挺难找的。如果没有意识到是代码不同步的话,很可能会被网上很多答案给带偏了。
希望我的这种解决能够帮助到有类似问题的人。
以下是我创建私有库过程中用到的一些命令
pod命令
pod spec create XTProtocolManager//生成pod库配置文件
pod init//生成Podfile
pod lib lint//验证lib
pod repo push [repo] [podspec]
pod repo push [repo] [podspec] --verbose --allow-warnings
git命令
git init//初始化
git status//查看状态
git add .//添加文件到缓冲区
git commit -m "描述"//从缓冲区提交代码到仓库
git tag -a '0.0.1' -m '描述'//添加tag
git tag //查看tag
git tag -d '0.0.1'//删除tag
git remote add origin https://github.com/xxx.git//关联本地仓库和远程仓库。
git push -f origin master//将本地库的代码推到远程库
git push --tags//将本地创建的tag推到远程库
git push origin :0.0.1//删除tag