iOS開發(fā)——在CocoaPods發(fā)布個人第三方庫

在進行日常的 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ù):

  1. s.homepage: 一般就是 Github 倉庫的主頁)。
  2. s.license: 指的是 Pods 依賴庫使用的 license 類型。
  3. s.source: 表示 git 倉庫的地址,注意是指向 tag 的,所以需要給你的 git 倉庫打上 tag。
  4. 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
  • 打上 tag0.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 命令來查找剛剛加入的名字叫 LixFoundationPod

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容