建立私有CocoaPods镜像

2020-06-06  本文已影响0人  jackyshan

CocoaPods介绍

引自 维基百科
CocoaPods 是一应用级别的依赖管理器,针对Objective-C、Swift和其他任一在Objective-C运行时上运行的语言,如RubyMotion,它为额外的库的管理提供了标准的格式。CocoaPods由Eloy Durán与Fabio Pelosin开发,他们在其他许多研发人员的贡献与帮助下,继续管理着该项目,他们在2011年8月时着手开发,并在2011年9月1日时编译了第一个公开版本。CocoaPods受到Ruby项目RubyGems与Bundler的强烈启发。

CocoaPods专注于第三方代码的基于源代码的分发和与Xcode项目的自动整合。

建立镜像

原因

github官方仓库是https://github.com/CocoaPods/Specs.git
由于CocoaPods设计的原因,iOS开发每次需要更新Pod库的时候,需要先拉CocoaPods的索引仓库。目前国内访问github的网络不佳,造成开发人员更新索引仓库需要及其长的时间。

解决

既然每次每人都要更新索引仓库,才能找到Pod库的更新,那不如只有一台机器去更新Pod库,这台机器每天定时更新完Pod库,提交到公司的私有仓库里面,大家都指向公司的私有仓库。这样大家只需要拉私有的索引仓库,速度保证够快了。

步骤

建立镜像仓库

在公司的私有仓库gitlab上建立仓库地址

git@code.xxx.cn:gz/iOS/common/Specs.git

检查master指向

Terminal终端执行pod repo list

master
- Type: git (master)
- URL:  https://github.com/CocoaPods/Specs.git
- Path: /Users/xxx/.cocoapods/repos/master

修改master指向

cd ~/.cocoapods/repos/master/
git remote remove origin
git remote add origin git@code.xxx.cn:gz/iOS/common/Specs.git

Terminal终端执行pod repo list

master
- Type: git (master)
- URL:  git@code.xxx.cn:gz/iOS/common/Specs.git
- Path: /Users/xxx/.cocoapods/repos/master

修改成功

修改Podfile

source 'git@code.xxx.cn:gz/iOS/common/Specs.git'

注意事项

定时拉取可能造成三方库会频繁更新,建议在Podfile,指定一些业务上的三方库的版本号。

例如

pod 'JVerification', '2.5.2'
pod 'LinkedME_LinkPage', '1.5.4.6'
pod 'UMCAnalytics', '5.5.2'
pod 'GrowingAutoTrackKit', '2.8.14'

更新Pod

pod update

定时更新

更新脚本

mirror_pod_update.sh

#!/bin/bash

# working path
cd "$HOME/.cocoapods/repos/inke-specs"

echo "--------切换目录完毕--------"

# clean
git reset --hard
git clean -dxf
git pull
git checkout master
git pull github master

echo "--------远程仓库更新完毕--------"

# log
git_log=`git --no-pager log --pretty=format:"%an%x09%ad%x09%s" --date=format:'%m/%d %H:%M' --after="yesterday"`
echo "●●●●●●●●●●●●●●●●●●●●  git_log:  ●●●●●●●●●●●●●●●●●●●●"
echo "${git_log}"

# update pod
git push origin master

echo "--------镜像仓库更新完毕--------"

Jenkins设置定时

取消镜像

cd ~/.cocoapods/repos/master/
git remote remove origin
git remote add origin https://github.com/CocoaPods/Specs.git
上一篇下一篇

猜你喜欢

热点阅读