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
依賴庫。