在進行日常的 iOS 開發(fā)的時候,我們肯定會用到各種第三方庫,每次使用一個庫的時候,各種依賴配置總是讓人很頭痛。幸好我們有了 CocoaPods,CocoaPods 為我們節(jié)省了大量集成第三方庫的時間。在我們便捷地使用他人制作的 Pod 的時候,一定也希望能夠?qū)⒆约旱拇a制作成 Pod 供別人使用,來為開源社區(qū)做一點貢獻。接下來,我們就來嘗試制作一個屬于自己的 Pod 庫,并發(fā)布供他人使用。
備注:假設(shè)你已經(jīng)擁有了一個完善的用于制作 Pod 的 iOS 工程。
創(chuàng)建 Pod 庫依賴的文件
1. podspec 文件
podspec 文件是 Pod 庫的描述文件,每個 Pod 庫必須有且僅有一個這樣的文件。文件名需要與我們將要創(chuàng)建的 Pod 庫的名稱一致,如我將創(chuàng)建的 Pod 庫名稱為 LixFoundation, 那么我的 podspec 文件就是 LixFoundation.podspec。
創(chuàng)建 podspec 文件
在工程目錄下,執(zhí)行(注意把名稱換成你自己的名稱)
pod spec create LixFoundation
創(chuàng)建完成后,在你的工程目錄下就會出現(xiàn)對應的文件。以下是我創(chuàng)建出來的文件(為了方便閱讀,我把所有注釋和不需要的選項都刪去了):
Pod::Spec.new do |s|
s.name = "LixFoundation"
s.version = "0.0.1"
s.summary = "Objective-C編程基礎(chǔ)工具類"
s.homepage = "https://github.com/originalix/LixFoundation"
#s.license = "MIT"
s.license = { :type => "MIT", :file => "LICENSE" }
s.author = { "Lix" => "xiao.liunit@gmail.com" }
s.platform = :ios
s.platform = :ios, "7.0"
s.source = { :git => "https://github.com/originalix/LixFoundation.git", :tag => "#{s.version}" }
s.source_files = "Lix_Foundation", "Lix_Foundation/**/*.{h,m}"
s.frameworks = "Foundation", "UIKit"
s.dependency 'LixMacro', '~> 0.0.3'
end
該文件雖然是 Ruby 文件,但是里面的條目的意思都明顯,就算沒有學過 Ruby 也不影響。
幾個需要說明的參數(shù):
- s.homepage: 一般就是 Github 倉庫的主頁)。
- s.license: 指的是 Pods 依賴庫使用的 license 類型。
- s.source: 表示 git 倉庫的地址,注意是指向 tag 的,所以需要給你的 git 倉庫打上 tag。
- s.source_files : 表示源文件的路徑,是相對于創(chuàng)建的 podspec 文件而言的。
其他應該具備的文件
1. license 文件
CocoaPods
強制要求所有的 Pod
依賴庫都必須有 license
文件,否則驗證不會通過。license
的類型很多,你可以在創(chuàng)建 Github
倉庫的時候一并創(chuàng)建,也可以在后來添加進去。具體的 license
類型和適合你的 license
請自行 google
。我在 Github 創(chuàng)建項目的時候,選擇了 MIT license
一并創(chuàng)建
2. 主文件
Pod
的根本目的就是將自己創(chuàng)建的類供他人使用,比如我的 Pod 的作用就是將 LixFoundation
類分享給別人使用,方便他們快捷的使用常用擴展和宏定義。所以我將 LixFoundation
放入到 LixFoundation
文件夾中。
3. Demo 工程
Demo
工程是為了方便向其他使用者展示該 Pod
的使用。我將 Demo
工程放在了 LixFoundationDemo
文件夾中。
4. README 文件
該文件一般使用 Markdown
語言標記,是對倉庫的詳細說明。作為一個共享給他人使用的 Pod
庫,README
文件是必不可少的,這樣對方才能很快的了解你的 Pod
具體是干嘛用的。
提交修改的文件`
1. 提交修改到 Github
依次執(zhí)行以下命令:
- 將新添加的文件加入到
git
管理,并提交一個commit
- 打上
tag
為0.0.1
(為了Pod
指向) - 提交
tag
- 提交到
Github
倉庫
git add -A && git commit -m "Release 0.0.1"
git tag '0.0.1'
git push --tags
git push origin master
如果一切正常,就可以在 Github
上看到剛才的改動
2. pod 驗證
執(zhí)行以下命令,為 Pod
添加版本號,并打上 tag
:
set the new version to 0.0.1
set the new tag to 0.0.1
接下來是驗證
pod lib lint
如果一切正常,終端中會輸出:
-> LixFoundation (0.0.1)
LixFoundation passed validation.
到此,pod 驗證就成功。
Trunk 你的 Pod
以上工作都就緒后,就可以將我們的 Pod
提交給 CocoaPods
了,CocoaPods 使用 trun
服務讓我們來提交 Pod
。
`
1. 注冊 Trunk
使用以下命令進行 trunk
注冊:
pod trunk register youremail@gmail.com 'ihomway' --description='macbook pro @ home' --verbose
上面的命令是我注冊時使用的,你需要把郵箱和名字以及描述替換成你的,加上 --verbose
可以輸出詳細 debug
信息,方便出錯時查看。
注冊后 CocoaPods
會給你的郵箱發(fā)送驗證鏈接,點擊后就注冊成功了,可以用 pod trunk me
命令查看自己的注冊信息,如我的注冊信息是:
- Name: **********
- Email: **********
- Since: **********
- Pods:
- Lix_ModelSqliteKit
- LixMacro
- LixFoundation
- Sessions:
- January 99th, 99:99 - May 25th, 03:02. IP: ********
Description: macbook pro @ home
2. 部署你的Pod
使用以下命令,通過 trunk
部署你的 Pod
:
pod trunk push LixFoundation.podspec
將 podspec
的文件名換成自己的文件名。
如果你出現(xiàn)報錯,請根據(jù)提示尋找錯誤的原因。
之后你可以運行 pod setup
來更新你的 Pod 依賴庫后,再使用 pod search LixFoundation
命令來查找剛剛加入的名字叫 LixFoundation
的 Pod
。