美文网首页
为自己的库代码制作CocoaPods依赖

为自己的库代码制作CocoaPods依赖

作者: CircusJonathan | 来源:发表于2018-11-07 01:57 被阅读81次

    CocoaPods是iOS最常用的类库管理工具,通过CocoaPods使用简单的命令就可以快速管理常用的类库。自己写的一些类库也可以添加到CocoaPods,为开源事业做贡献,或者做成自己的私有库,方便在不同的项目中快速使用。


    下面详细说明如何为自己的类库添加CocoaPods依赖。

    • 创建Git代码库

    GitHub(本文使用GitHub)或者Gitlab上创建自己的远程代码库,用于存放需要添加CocoaPods依赖的封装库,或者库及其示例工程。如下为GitHub上创建一个名为CJChartView的Public的代码库,这个库将用来存放我的示例工程和统计图表库。

    创建GitHub仓库
    • 本地创建制作CocoaPods依赖的库文件及示例工程

    我们可以把想要使用CocoaPods管理的库文件直接制作成pods依赖库,用户使用的时候,install到项目中然后集成使用;当然也可以在制作依赖库的时候提供示例工程,写一些示例代码,方便用户参考和集成。
    我这里准备上传一个CJChartExample工程到GitHub上,然后给示例工程的CJChartView库添加CocoaPods依赖。方便用户使用pods集成CJChartView库,同时通过GitHub下载示例项目,实现快速集成或者查看各种统计图表的实际效果。

    示例项目和CJChartView库

    如上图,我准备了一个名为CJChartExample的示例工程,红色框内的文件夹CJChartView为准备制作CocoaPods依赖的文件。
    上图中除了示例工程文件、库文件之外,还有三个文件:.podspecLICENSEREADME.md
    .podspec:cocopods引入第三方代码库的配置索引文件
    LICENSEMIT License软件授权条款
    README.md:使用说明
    1、创建spec文件
    使用终端cdCJChartView的根目录,输入命令创建spec文件。

    // pod spec create 库名字
    pod spec create CJChartView 
    

    执行完命令,文件夹下创建了一个名为CJChartView.podspec的spec文件。使用Xcode打开编辑此文件。下面是一些重要的基础属性及含义。

    Pod::Spec.new do |s|
    
      # 库名称
      s.name         = "CJChartView"
    
      # 库的版本
      s.version      = "0.0.1"
    
      # 库摘要
      s.summary      = "简单易用的统计图表(包括:扇形图、进度条、柱状图、折线图。。。)"
    
      # 库描述(最好比summary多写一些描述)
      s.description  = <<-DESC
                        简单易用的统计图表(包括:扇形图、进度条、柱状图、折线图。。。)
                        提供方便用户集成使用的统计图表绘制
                        持续更新中。。。
                       DESC
    
      # 远程仓库地址,即 GitHub 的地址,或者你使用的其他的 Gitlab,码云的地址
      s.homepage     = "https://github.com/CircusJonathan/CJChartView"
    
      # MIT许可证(The MIT License),软件授权条款
      s.license      = "MIT"
      # s.license      = { :type => "MIT", :file => "FILE_LICENSE" }
    
      # 作者信息
      s.author             = { "Jonathan" => "Jonathan_dk@163.com" }
    
      # 支持的系统及支持的最低系统版本
      s.platform     = :ios
      s.platform     = :ios, "8.0"
    
      # 支持多个平台使用时
      # s.ios.deployment_target = "8.0"
      # s.osx.deployment_target = "10.7"
      # s.watchos.deployment_target = "2.0"
      # s.tvos.deployment_target = "9.0"
    
      # 下载地址,即远程仓库的 GitHub下载地址(clone 地址),使用.git结尾
      s.source       = { :git => "https://github.com/CircusJonathan/CJChartView.git", :tag => "#{s.version}" }
    
      # 库文件在仓库中的相对路径
      # 等号后面的第一个参数表示的是要添加 CocoaPods 依赖的库在项目中的相对路径
      # 因为我的库就放在库根目录,所以直接就是 CJChartView
      # 如果你的是在其他地方,比如 CJChart/CJChartView,填写实际的相对路径
      # 等号后的第二个参数,用来指示 CJChartView 文件夹下的哪些文件需要添加 CocoaPods依赖
      # “**”这个通配符代表 CJChartView 文件夹下的所有文件,"*.{h,m}"代表所有的.h,.m文件
      s.source_files  = "CJChartView", "CJChartView/**/*.{h,m}"
    
      # 指明 CJChartView 文件夹下不需要添加到 CocoaPods 的文件
      # 这里是 Exclude 文件夹内的内容
      s.exclude_files = "CJChartView/Exclude"
    
      # 是否需要项目是 ARC
      s.requires_arc = true
    
      # 库中用到的框架或系统库(没用到可以没有)
      s.ios.frameworks = 'Foundation', 'UIKit'
      # s.framework  = "SomeFramework"
      # s.frameworks = "SomeFramework", "AnotherFramework"
    
      # 如果你的库依赖其他的 Podspecs,可以添加这些依赖项,例如
      # s.dependency 'AFNetworking', '~> 3.2.1'
    
    end
    

    2、创建软件授权条款LICENSE文件
    通过终端vim命令创建LICENSE并编辑license内容。一般采用MIT许可证,MIT许可证(The MIT License)是许多软件授权条款中,被广泛使用的其中一种。与其他常见的软件授权条款(如GPLLGPLBSD)相比,MIT是相对宽松的软件授权条款。MIT条款可与其他授权条款并存。MIT条款是自由软件基金会(FSF)认可的自由软件授权条款,与GPL兼容。
    MIT授权条款格式如下,只需要修改yearcopyright holder就可以了。

    Copyright (C) <year> <copyright holders>
     
    Permission is hereby granted, free of charge, to any person obtaining a copy
    of this software and associated documentation files (the "Software"), to deal
    in the Software without restriction, including without limitation the rights
    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    copies of the Software, and to permit persons to whom the Software is furnished
    to do so, subject to the following conditions:
     
    The above copyright notice and this permission notice shall be included in all
    copies or substantial portions of the Software.
     
    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    THE SOFTWARE.
    

    3、创建README.md使用说明
    同样使用vim命令创建README.md文件并编辑,我目前的内容很简单,只写了几行描述文案,后续再持续完善使用说明。

    # CJChartView
    Description:
    简单易用的统计图表(包括:扇形图、进度条、柱状图、折线图。。。)
    提供方便用户集成使用的统计图表绘制
    持续更新中。。。
    
    • 代码上传GitHub及注册spec并推送到CocoaPods仓库

    1、上传代码到GitHub,此处使用终端命令实现

    // cd 到项目文件夹根目录
    cd /Users/jonathancircus/Desktop/CJChartView
    // git init (初始化本地仓库)
    git init
    // git add . (将仓库添加到临时仓库,"."表示目录下所有文件)
    git add .
    // git commit -m "描述信息" (添加描述信息)
    git commit -m "init CJChartView "
    // git remote add origin github上仓库的地址(关联到远程仓库)
    git remote add origin https://github.com/CircusJonathan/CJChartView.git
    // git push -f origin master(推送到远程仓库,执行之后需要输入GitHub账号和密码)
    git push -f origin master
    

    成功运行上面的命令之后,项目已经push到了GitHub代码库,如下图:

    代码上传到GitHub

    2、注册spec并推送到CocoaPods仓库
    CJChartView打标签。

    git tag '0.0.1'  //标签
    git push --tags  //推送到远程仓库
    

    注册spec并推送到远程仓库
    使用trunk进行注册

    // 填写验证邮箱,稍后通过邮件验证
    pod trunk register Jonathan_dk@163.com 'Jonathan' --verbose
    
    注册成功终端信息

    注册成功之后终端会显示如上图的信息,提示通过邮件链接验证CocoaPods注册信息。邮件内容如下:

    验证邮件,点击邮件链接验证 验证成功

    验证成功之后,使用终端命令进行推送

    // pod trunk push 完整的.podspec文件名
    pod trunk push CJChartView.podspec --allow-warnings 
    

    推送结果如下,因为我写文章的时候推送的是0.0.3版本的,所以下图中的库版本信息显示的是0.0.3(和上文中spec配置文件中不一样,上文是0.0.1,实际推送的时候两者是一样的),其次因为有新的CocoaPods版本,所以在推送的时候,终端提醒我去试用beta版pods,这些信息可以忽略,不影响此图作为trunk推送成功的参考信息。

    trunk推送成功终端信息

    到这里CocoaPods依赖库就发布成功了,可以使用pod search 库名称命令搜索验证。如果搜索不到,执行以下命令

    // 更新本地的CocoaPods库
    pod repo update
    // 然后使用下面的命令搜索
    // pod search 库名称 --simple
    pod search CJChartView --simple
    

    搜索到的结果如下图

    search 结果
    • 更新CocoaPods依赖库文件

    更新CocoaPods上的库文件非常简单
    1、把修改(升级)后的库文件pushGitHub
    2、修改CocoaPods配置索引文件.podspec
    修改库配置文件的版本信息s.version,和必要的其他配置信息。
    3、打标签,推送到CocoaPods远程仓库
    打标签,推送标签

    git tag '版本信息' 
    git push --tags
    

    推送库到CocoaPods远程仓库

    // pod trunk push 完整的.podspec文件名
    pod trunk push 完整的.podspec文件名 --allow-warnings 
    

    CocoaPods自定义库文件更新完毕!


    • 删除CocoaPods依赖库文件

    目前貌似不支持删除CocoaPods上已有的公开库依赖,我暂时还没找到删除方法,如有知道的,期待交流。

    相关文章

      网友评论

          本文标题:为自己的库代码制作CocoaPods依赖

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