CocoaPods
是iOS最经常使用的类库管理工具,经过CocoaPods使用简单的命令就能够快速管理经常使用的类库。本身写的一些类库也能够添加到CocoaPods,为开源事业作贡献,或者作成本身的私有库,方便在不一样的项目中快速使用。
文章来自于个人简书:原文在这里ios
下面详细说明如何为本身的类库添加CocoaPods依赖。git
在GitHub
(本文使用GitHub)或者Gitlab
上建立本身的远程代码库,用于存放须要添加CocoaPods
依赖的封装库,或者库及其示例工程。以下为GitHub上建立一个名为CJChartView
的Public的代码库,这个库将用来存放个人示例工程和统计图表库。github
建立GitHub仓库vim
咱们能够把想要使用CocoaPods管理的库文件直接制做成pods
依赖库,用户使用的时候,install到项目中而后集成使用;固然也能够在制做依赖库的时候提供示例工程,写一些示例代码,方便用户参考和集成。
我这里准备上传一个CJChartExample
工程到GitHub
上,而后给示例工程的CJChartView
库添加CocoaPods依赖。方便用户使用pods集成CJChartView
库,同时经过GitHub下载示例项目,实现快速集成或者查看各类统计图表的实际效果。bash
示例项目和CJChartView库框架
如上图,我准备了一个名为CJChartExample
的示例工程,红色框内的文件夹CJChartView
为准备制做CocoaPods依赖的文件。
上图中除了示例工程文件、库文件以外,还有三个文件:.podspec
、 LICENSE
和README.md
。
.podspec
:cocopods引入第三方代码库的配置索引文件
LICENSE
:MIT License
软件受权条款
README.md
:使用说明
一、建立spec
文件
使用终端cd
到CJChartView
的根目录,输入命令建立spec
文件。工具
// pod spec create 库名字
pod spec create CJChartView
复制代码
执行完命令,文件夹下建立了一个名为CJChartView.podspec
的spec文件。使用Xcode打开编辑此文件。下面是一些重要的基础属性及含义。ui
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
复制代码
二、建立软件受权条款LICENSE
文件
经过终端vim
命令建立LICENSE
并编辑license内容。通常采用MIT
许可证,MIT许可证(The MIT License)是许多软件受权条款中,被普遍使用的其中一种。与其余常见的软件受权条款(如GPL
、LGPL
、BSD
)相比,MIT
是相对宽松的软件受权条款。MIT
条款可与其余受权条款并存。MIT
条款是自由软件基金会(FSF
)承认的自由软件受权条款,与GPL
兼容。
MIT
受权条款格式以下,只须要修改year
和copyright holder
就能够了。this
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.
复制代码
三、建立README.md
使用说明
一样使用vim
命令建立README.md
文件并编辑,我目前的内容很简单,只写了几行描述文案,后续再持续完善使用说明。spa
# CJChartView
Description:
简单易用的统计图表(包括:扇形图、进度条、柱状图、折线图。。。)
提供方便用户集成使用的统计图表绘制
持续更新中。。。
复制代码
一、上传代码到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代码库,以下图:
二、注册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
推送成功的参考信息。
到这里CocoaPods
依赖库就发布成功了,可使用pod search 库名称
命令搜索验证。若是搜索不到,执行如下命令
// 更新本地的CocoaPods库
pod repo update
// 而后使用下面的命令搜索
// pod search 库名称 --simple
pod search CJChartView --simple
复制代码
搜索到的结果以下图
更新CocoaPods
上的库文件很是简单
一、把修改(升级)后的库文件push
到GitHub
上
二、修改CocoaPods
配置索引文件.podspec
修改库配置文件的版本信息s.version
,和必要的其余配置信息。
三、打标签,推送到CocoaPods
远程仓库
打标签,推送标签
git tag '版本信息'
git push --tags
复制代码
推送库到CocoaPods
远程仓库
// pod trunk push 完整的.podspec文件名
pod trunk push 完整的.podspec文件名 --allow-warnings
复制代码
CocoaPods
自定义库文件更新完毕!
CocoaPods
上已有的公开库依赖,我猜测直接删除Git上的库源代码,便可删除CocoaPods
依赖库。