美文网首页
建立私有CocoaPods镜像

建立私有CocoaPods镜像

作者: jackyshan | 来源:发表于2020-06-06 10:13 被阅读0次

    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
    

    相关文章

      网友评论

          本文标题:建立私有CocoaPods镜像

          本文链接:https://www.haomeiwen.com/subject/uyenzhtx.html