CocoaPods私有仓库获取不到最新版本的pod

背景:

公司项目自己弄了私有的CocoaPods仓库,我将私有仓库通过pod repo add privatefactory "http://xxx.xx.xx.xx/mygit.git"添加到了本地
修改了一个pod后,将最新版本1.3.5的pod推到了仓库里
然后本地通过pod repo update privatefactory更新了本地仓库

问题:

Podfile内容如下:

platform :ios, '7.0'
source 'http://xxx.xx.xx.xx/mygit.git'
source 'https://github.com/CocoaPods/Specs.git'

target 'Sample' do
  pod 'SamplePod','~> 1.3.1'
end

通过pod install --no-repo-update安装pod,结果发现使用的仍然是1.3.1版本的SamplePod,而不是最新的1.3.5。

原因

查看/.cocoapods/repos目录,发现自己的私有仓库有两个文件夹,自己手动添加的privatefactory和一个2-mygit文件夹。privatefactory文件夹里的SamplePod是最新的1.3.5,而2-mygit里面的是老的1.3.1版本。
经过一番调试对比发现了原因:
因为我的Podfile里面,source配置的是git地址,所以pod install执行的时候并不会使用我手动添加的privatefactory私有仓库,而是去2-mygit仓库,如果仓库不存在就重新拉取,如果已存在,就直接使用该仓库,并不会更新仓库。
我的问题就在于之前2-mygit仓库是存在的,且SamplePod的版本是1.3.1,而我手动更新的是privatefactory仓库,2-mygit仓库没有更新,pod install的时候2-mygit也没有更新,所以导致使用了老的git。

解决方法

经过测试发现,如果本地仓库的名字和git仓库工程的名字相同,pod install的时候就会直接使用该仓库名字。
所以,要求每个人把本地仓库的名字设置成仓库工程的名字,似乎就可以解决掉这个问题了,不会出现多个仓库的问题。
但这样的解决办法有风险,加入哪个开发人员没有按要求做,并且在自己本机打包了,那就会出现使用老的pod的问题。

所以最保险的办法是使用jenkins在专用的打包机器上进行打包,避免因为本机环境出现代码集成问题。

猜你喜欢

转载自blog.csdn.net/jhq1990/article/details/54376343
今日推荐