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
网友评论