美文网首页
发布自己的pod文件

发布自己的pod文件

作者: 高思阳 | 来源:发表于2018-10-18 13:56 被阅读10次

    前言
    在我们想要发布自己的pod文件时,需要通过Pod Lib Create指令去创建pod,然后添加文件,测试后发布.这次我们来探究下Pod Lib Create到底是如何实现的,该指令帮我们做了什么呢?
    pod lib create
    通过pod lib create创建一个pod,分析创建流程当执行pod lib create ProjectName时,其实是下载了一个pod模板,然后在内部通过更改.podspec文件的配置定制化自己的pod,pod lib create ProjectName其实使用了默认参数,补全的话pod lib create ProjectName --template-url=https://github.com/CocoaPods/pod-template.git,
    执行:pod lib create

    image.png

    分析

    • Cloning https://github.com/CocoaPods/pod-template.git into ProjectName.创建一个和指定的项目名相同的文件夹,然后将pod-template克隆下拉
    • Configuring TemplateDemo template对当前项目进行配置pod-template是cocoapods官方提供的一个模板,做了什么呢
      pod-template
      看一下文件路径

      pod-template

    Configuring TemplateDemo template做了什么呢?先找当前路径下configure文件,文件夹内容

    !/usr/bin/env ruby

    $current_dir = File.dirname(File.expand_path(FILE))

    Dir[File.join($current_dir, "setup/*.rb")].each do |file|

    require_relative(file)

    end

    pod_name = ARGV.shift

    Pod::TemplateConfigurator.new(pod_name).run
    根据上述命令:可得知,遍历并通过require_relative(file)获得访问在setup文件夹下寻找以.rb为后缀名的文件的权限,然后Pod::TemplateConfigurator.new(pod_name).run运行TemplateConfigurator文件的内容看一下setup下面有什么?


    setup文件夹

    在TemplateConfigurator文件内,配置了在终端的显示样式,并通过

    @message_bank = MessageBank.new(self)
    @message_bank.show_prompt
    @message_bank.show_prompt
    等方法,引用MessageBank内的命令,具体不再赘述,感兴趣的可以到ruby文件去查看.
    延伸
    我们可以定义自己的模板,仿照pod-template,配置configure文件,但是相应的参数可以在内部之间定义好,就不需要每次pod lib create时填写各种参数.

    执行结果
    文件夹目录结构如下
    MyLib
    ├── .travis.yml
    ├── _Pods.xcproject
    ├── Example
    │ ├── MyLib
    │ ├── MyLib.xcodeproj
    │ ├── MyLib.xcworkspace
    │ ├── Podfile
    │ ├── Podfile.lock
    │ ├── Pods
    │ └── Tests
    ├── LICENSE
    ├── MyLib.podspec
    ├── Pod
    │ ├── Assets
    │ └── Classes
    │ └── RemoveMe.[swift/m]
    └── README.md

    • Pod 用来存放添加的类

    • RemoveMe 示例类,可以直接删除
      注意: 基于自定义pods的实现细节,在向Pod/Classes或者Pod/Assets文件增加类或者更新podspec文件时,需要运行pod install或者pod update

    • 当你需要向向你的项目中安装新的pod库时使用pod install。即使之前你已经有一个Podfile并且执行了pod install,即使你是在向一个已经使用了CocoaPods的项目中添加或移除pod库。

    • 只有当你想要更新pod库的版本时才使用pod update。

    发布私有库
    之前的开发和测试就绪后,就要准备发布了.

    • pod lib lint 或 pod spec lint :首先要检测Podspec的正确性pod lib lint不会连接网络,而是检查文件格式pod spec lint 会读取线上的repo并检查相应的tag
    • pod repo push SPEC_REPO *.podspec --verbose 发布po

    相关文章

      网友评论

          本文标题:发布自己的pod文件

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