Cocoapods私有库管理

作者: 47号同学 | 来源:发表于2017-08-17 21:02 被阅读126次
    镇楼

    前言

    在我们开发过程中,有一些自己封装的工具类或是库,为了方便管理,我们借助cocoapods来实现。我们平时所接触的第三方库,是公开的,我们自己的代码使用私有库来进行。

    私有库相关概念和原理

    cocopods为包管理,那么顾名思义它只是管理我们所存代码的一些信息,并不是真正管理我们的代码。那么这里就需要两个仓库,其中一个仓库是托管cocoapods所需要的配置文件,另外一个仓库才是存放我们的代码。

    工作原理工作原理

    cocoapods是通过.podspec文件来索引私有库真的存代码的仓库。其所有配置文件托管在Master Repo

    核心概念:

    .podspec : 该文件为你的代码仓库索引描述文件,CocoaPods通过该文件对你真正存储代码工程的 Git 仓库进行索引与下载

    Lib : 你上传到远程Git仓库的代码工程,将来用于开源共享或则私有

    Git 仓库 : Git介绍

    CocoaPod 通过第一个 Git 仓库的里 .podspec 描述文件找到真正存储你代码的第二个 Git 仓库,然后根据 .podspec 里的相关字段对特定目录下的代码,三方依赖库,资源文件等进行下载。

    换一种说法来理解,第一个 Git 仓库里的 .podspec 描述文件相当于我们的指针, 其指向的另一个 Git 仓库(内存)才是你自己真正所共享的代码。

    私有库创建流程

    基于git的仓库有很多,由于GitHub的私有库是收费的,所以笔者使用的码云。

    1.首先创建仓库1,用于托管我们的代码。

    创建仓库1创建仓库1

    2.创建仓库2,用于存放cocoapoads索引所需的配置文件。

    仓库2仓库2

    3.前面已经将两个仓库建好了,那么接下来创建代码库Lib和托管Podspec文件。

    (1)首先在本地创建一个Lib,使用终端cd到你文件想要保存的目录下,依照提示创建。

    创建lib命令:pod lib create <#项目名字#>

    当执行pod lib create ProjectName时,其实是下载了一个pod模板,然后在内部通过更改.podspec文件的配置定制化自己的pod,
    pod lib create ProjectName其实使用了默认参数,补全的话pod lib create ProjectName --template-url=https://github.com/CocoaPods/pod-template.git,

    当模板创建成功后,会自动使用XCode打开。

    (2)接下来我们配置一下ExampleLib.podspec文件:

    (3)配置好相关信息后,我们来检查一下文件格式和远程地址等信息是否正确:

    pod lib lint

    注意:提示信息需要没有error和warn:(这里一般出错都是远程仓库地址没配置好或是素材路径等)

    通过Cocoapods创建出来的工程本身就在本地的Git管理下,我们需要做的就是给它添加远端仓库,此远程仓库就是上面我们创建的ExampleLib。网上大多数的做法是直接通过终端git命令行来上传,笔主这里使用可视化的git管理工具SourceTree;

    使用SourceTree将远程仓库clone下来,然后将我们所创建的lib仓库复制好,进行远程推送。推送后一定要给本次推送打上tag(标签)。因为这个标签在下一步验证中需要使用。

    添加标签添加标签

    tag的版本号需要跟ExampleLib.podspec文件中的s.version一致。注意:SourceTree添加标签后,一定要再远程推送一编,这样远程仓库才有tag的。

    远程验证Podspec正确性:

    pod spec lint 会读取线上的repo并检查相应的tag

    如果远程验证没过,一定要注意是不是远程仓库的tag没有添加成功。

    PS:如何你在创建lib失败,错误如下:

    创建失败一开始题主以为是ruby版本太低,经查阅资源得知是因为cocoapods的版本太低了。可以通过命令行pod --version查看版本号,低于1.2.0的都不行。

    那么通过命令gem install cocoapods --pre来升级cocoapods。

    升级后再重新开始创建lib就能正常创建了。

    (4)存放代码的远程仓库已经弄好了,那么接下来就应该把ExampleLib.podspec文件上传到配置文件仓库,以便pod查询使用。我们平常使用到的第三方库的Podspec文件都托管在https://github.com/CocoaPods/Specs。可以进入 ~/.cocoapods/repos 目录下查看,三方库的所有配置文件都在Master文件夹中。

    pod repo add 仓库名 仓库地址

    ~/.cocoapods/repos 目录下查看,就能找到我们刚刚添加的库了。

    (5)最后就将ExampleLib.podspec文件上传到远程库

    私有库的使用

    私有库创建成功后,pod search 你的私有库名字可以搜索到我们的私有库。由于我们使用的私有库,那么就需要告诉cocoapods你所引用的私有库的配置文件在哪里,固在Podfile文件中需要添加私有库配置文件的远程仓库地址:

    私有库的使用私有库的使用

    总结

    下面用一张图来总结整个过程:

    流程流程

    参考:

    创建私有Pods,从小白到老铁

    pod lib create fails

    相关文章

      网友评论

        本文标题:Cocoapods私有库管理

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