美文网首页iOS进阶
制作自己的cocoapods

制作自己的cocoapods

作者: 铃鹿山大魔王 | 来源:发表于2018-08-03 16:03 被阅读790次

    Podspec 制作

    Podspec创建

    $ pod lib create MyTest
    

    创建名为MyTest的工程,执行此命令后,pod会向其远程服务器下拉工程文件模板及相关依赖。

    下拉后,按照提示填入相应的字段即可。

    例如 平台类型语言Demo测试框架界面测试类前缀 等,可按实际情况填写。

    在创建工程前,最好先cd到指定目录下,避免找不到工程文件。

    Podspec修改

    工程创建完成后,文件结构可如下所示:

    _Pods.xcodeproj Example LICENSE MyTest MyTest.podspec README.md

    其中 Example 是刚才创建的demo工程,我们可以在这里面写自己的demo。里面用Pod管理的第三方,可以随意pod。

    MyTest 下需要存放源代码,也就是需要把自己的pod库源代码存放在里面。注意目录结构,后面会用得到。

    MyTest.podspec 这个我们需要做修改,打开 Example 里的demo工程,就可以通过Xcode看到这个podspec文件了。按照该文件的要求,进行修改。其中 s.source_files 需要重点注意,路径别修改错了。例如我的 s.source_files = 'MyTest\*.{h,m}' ,根目录:MyTest目录->所有的.h和.m文件。如果这个路径写错了,后面验证Podspec的时候,肯定不通过。

    补充Demo

    打开Demo工程,可在里面书写自己的类使用实例。

    注意:若更改了原有 MyTest 下的目录结构及文件,有可能造成Demo工程运行不起来的情况,此时只需在终端执行 pod install (注意pod执行路径),然后关闭工程,重新打开这个Demo即可。我估计是文件路径有变动,但是Demo工程读取的还是旧的文件路径。

    Podspec验证

    $ pod lib lint
    

    正常情况下,验证是通过的 MyTest passed validation.

    如果验证出错,需根据错误提示进行处理。

    代码上传

    添加远程git仓库地址

    以上操作后,我们需要将我们的代码上传到远程仓库。

    若是新建仓库,个人建议建立一个空的仓库,即使是README.md也不需要。然后在整个工程的根目录下,执行操作

    $ git remote add origin xxx.xxx.git
    

    也就是把远程仓库地址添加到工程里,这样我们就可以进行代码的提交。

    若是已有仓库,或者是仓库有文件。个人建议先将此仓库克隆下来,然后把我们用pod创建的工程整个拖进去,这样我们就可以进行代码提交了。

    添加tag
    $ git add -A && git commit -m "Release 0.1.0"
    $ git tag '0.1.0'
    $ git push --tags
    

    需要注意的是,这个tag需要与podspec里的version号一致,否则在提交podspec到pod远程仓库的时候会出错。

    代码提交

    $ git push origin master
    

    至此,所有的文件都应该是上传到远程代码仓库了,我们可以查看自己的远程仓库,看是否有提交记录。

    Podspec提交公有仓库

    公有仓库说明

    此处的公有仓库,指的是cocoapods官方的仓库。用于存放用户提交的podspec文件,以便于所有用户使用pod拉取第三方代码。

    注册设备

    在向cocoapods远程仓库提交自己的podspec,需要进行设备注册(认证)。

    $ pod trunk register xxx@xxx.com 'my name' --description='my macbook air'
    

    然后查看自己的邮件,复制邮件中的链接,用浏览器打开即可。(此操作可能出现失败,需良好的网络环境)

    提交.podspec

    $ pod trunk push MyTest.podspec
    

    注意命令执行的目录,需要项目根目录执行。

    正常情况下,会提示你提交成功,然后就可以用pod搜索自己的库了。例如 $ pod search MyTest ,就可以搜索到我刚才提交的MyTest的pod资源了。

    如果搜索不到,可能需要删除索引文件了。

    $ rm ~/Library/Caches/CocoaPods/search_index.json
    

    然后再次执行 pod search

    Podspec提交私有仓库

    私有仓库说明

    此处的私有仓库,指的是个人或者公司使用而不让其他人使用的仓库。与公有仓库类似,用于存放用户提交的podspec文件,以便于私有用户使用pod拉取自己的代码。

    私有仓库创建

    此创建与普通git仓库创建类似,最好使用README.md初始化,顺便补充README.md文件信息。

    私有仓库本地安装

    $ pod repo add MyRepo xxx.xxx.git
    

    在本地安装一个名叫 MyRepo 的私有仓库, xxx.xxx.git 为私有仓库地址。

    查看本地私有仓库

    $ cd ~/.cocoapods/repos
    $ ls
    

    可查看此文件夹下,除了官方的master仓库,还会有自己刚刚安装的MyRepo私有仓库。我们也可以顺带看看官方的仓库里到底都有什么。

    提交.podspec

    $ pod repo push MyRepo MyTest.podspec
    

    向私有库 MyRepo 提交 MyTest.podspec 文件。

    需要注意的是,在提交 .podspec 前,同样需要修改 .podspec 文件,验证、打tag,源码提交。但私有库的验证,需要加上 --private 。完整的验证为: $ pod lib lint --private

    私有库引用

    只需要在编辑Podfile文件的时候,指定source源即可。

    source ‘xxx.xxx.com/MyRepo.git’
    

    顺便补充官方的source源

    source ‘https://github.com/CocoaPods/Specs.git’
    

    私有库卸载

    $ pod repo remove MyRepo
    

    卸载 MyRepo 私有库

    信息补充

    关于私有仓库:

    私有仓库只是用来存放私有的podspec,不存放代码。可为外网git,也可为内网git。总而言之,只是podspec的仓库。

    关于代码仓库:

    代码仓库用来存放自己的源代码的git,可为外网git,也可为内网git。总而言之,只是代码的仓库。

    一个私有库,可以存放n多个podspec文件,管理着n多个私有pod。

    私有仓库可以随意删除,但不会影响到代码仓库。私有仓库不要加入代码,因为加了也没有任何作用。

    私有库与公有库基本一样,只是一个是官方的git,一个是自己的git。私有库需安装,podspec验证需加上说明,使用的时候需引入。

    相关文章

      网友评论

        本文标题:制作自己的cocoapods

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