原文發(fā)布于我的博客:http://blog.zyliu.com/create-and-publish-cocoapods-spec/
隨著對 CocoaPods 越來越多的依賴蛤袒,我們也可以嘗試把自己的庫發(fā)布到它上面役首。本文簡要介紹了如何制作并發(fā)布自己的 CocoaPods spec。
托管代碼
將工程文件提交到代碼托管平臺如 GitHub芥吟,同時打好 tag遥巴,比如第一版是 1.0.0
,則在 master
分支打一個名為 1.0.0
的 tag。
一般這里該怎么辦都很清楚体斩,我就不贅述了。
制作并驗證 podspec
首先在自己的工程下使用初始化一個新的 spec颖低,其中 [NAME]
即為庫的名稱絮吵。
$ pod spec create [NAME]
之后在該目錄下會生成一個 [NAME.podspec]
文件,該文件是 Ruby 編寫的忱屑,打開并編輯這個文件蹬敲,把需要填寫的基本內(nèi)容填好如下
Pod::Spec.new do |s|
s.name = "SHPAlertView"
s.version = "1.0.0"
s.summary = "A UIAlertView with block support."
s.homepage = "https://github.com/tzuyangliu/SHPAlertView"
s.license = "MIT"
s.author = { "劉子洋" => "me@zyliu.com" }
s.platform = :ios, "7.0"
s.source = { :git => "https://github.com/tzuyangliu/SHPAlertView.git", :tag => "1.0.0" }
s.source_files = "SHPAlertView", "SHPAlertView/*.{h,m}"
s.frameworks = "Foundation", "UIKit"
end
其中 s.source
中的 tag 即提交代碼的時候打的 tag暇昂。
在這里我省略掉了很多注釋和不常用的屬性,如果需要詳細文檔請移步 Specs and the Specs Repo伴嗡。
保存后進行驗證急波,這一步是無法跳過的,也是為了保證上傳的 spec 可用:
$ pod spec lint [NAME]
如果有錯誤會有提示闹究,像這樣就算成功了
$ pod spec lint SHPAlertView.podspec
-> SHPAlertView (1.0.0)
Analyzed 1 podspec.
SHPAlertView.podspec passed validation.
發(fā)布
首先注冊一個 CocoaPods Trunk 賬戶幔崖,注意將下面的郵箱、姓名與描述替換為自己的信息渣淤。
$ pod trunk register sheep@cocoapods.org 'Sheep' --description='macbook pro'
完成后使用 pod trunk me
檢查是否成功赏寇,成功后開始上傳:
如果是公開的使用
$ pod trunk push [NAME.podspec]
如果私有則使用
$ pod repo push REPO [NAME.podspec]
看到類似如下的信息,則上傳并發(fā)布成功
$ pod trunk push SHPAlertView.podspec
Updating spec repo `master`
Validating podspec
-> SHPAlertView (1.0.0)
Updating spec repo `master`
- Data URL: https://raw.githubusercontent.com/CocoaPods/Specs/2879acf97fcf49a1355c9301f62b96dbd913d702/Specs/SHPAlertView/1.0.0/SHPAlertView.podspec.json
- Log messages:
- November 23rd, 13:26: Push for `SHPAlertView 1.0.0' initiated.
- November 23rd, 13:26: Push for `SHPAlertView 1.0.0' has been pushed
(1.222696649 s).
可以嘗試使用 pod search [NAME]
看看你的庫是不是已經(jīng)出現(xiàn)在里面啦~