天天看點

iOS 記錄之 CocoaPods Pods的制作(新版方式)

闡述 随着iOS的不斷發展,越來越多的開發者開始使用CocoaPods來管理他們的第三方。使用Pods時,我在考慮Pods能不能給自己更大的幫助,改變現在的開發風格。

制作 為了表示對CocoaPods的尊重,首先附上CocoaPods Github官方連結: https://github.com/CocoaPods 。 下方将介紹Pods制作步驟(文中多處操作使用Git指令,使用者可使用SourceTree來操作) 一、在Github中建立一個倉庫(Repository) 相信大家都有Github賬号,此處忽略關于Github賬号申請細節。

iOS 記錄之 CocoaPods Pods的制作(新版方式)

上方各部分含義: 1、Repository name 代碼倉庫名稱,也可以說是Pod的名字

2、Description 代碼倉庫的描述資訊

3、倉庫的公開性 随個人能力選擇,Public免費,Private收費

4、是否建立一個預設的README檔案 完整的代碼倉庫,都需要README

5、是否添加.gitignore檔案 .gitignore檔案裡面記錄了若幹檔案類型,凡是該檔案包含的檔案類型,git都不會将其納入到版本管理中,是否選擇看個人需要。

6、license類型 正規的倉庫都應該有一個license檔案,Pods依賴庫對這個檔案的要求更嚴,是必須要有的。是以最好在這裡讓github建立一個,也可以自己後續再建立。我使用的license類型是MIT

二、Clone 這個倉庫到本地目錄(可使用SourceTree等其它svn工具) Terminal 指令 $ git clone 倉庫位址

iOS 記錄之 CocoaPods Pods的制作(新版方式)

三、本地建立 .podspec 檔案 (spec 規範) 1、簡述 .podspec 檔案 該檔案為Pods依賴庫的描述檔案,每個Pods依賴庫必須有且僅有一個描述檔案,名稱需與建立的依賴庫名稱保持一緻。

2、.podspec 檔案相關 a 示例内容 Pod::Spec.new do |s|

  s.name         = "MethodFactory"   s.version      = "0.0.1"   s.summary      = "MethodFactory is a Good Factory of Method."

  s.description  = <<-DESC                    MethodFactory is a Good Factory of Method ,it has too much nice method.                    DESC

  s.homepage     = "https://github.com/yanglei3kyou/MethodFactory"   # s.screenshots  = "www.example.com/screenshots_1.gif", "www.example.com/screenshots_2.gif"

  s.license      = "MIT"   # s.license      = { :type => "MIT", :file => "FILE_LICENSE" }

  s.author             = { "yanglei3kyou" => "[email protected]" }   # Or just: s.author    = "yanglei3kyou"   # s.authors            = { "yanglei3kyou" => "[email protected]" }   # s.social_media_url   = "http://twitter.com/yanglei3kyou"

  s.platform     = :ios

  s.source       = { :git => "https://github.com/yanglei3kyou/MethodFactory.git", :tag => "0.0.1" }

  s.source_files  = "MethodFactory", "MethodFactory*"

  s.public_header_files = "MethodFactory*.h"

  s.vendored_libraries = 'MethodFactory/*.a'

  s.frameworks = "Foundation", "UIKit"

  s.requires_arc = true

end

b 參數解釋 s.license Pods依賴庫使用的license類型

s.source_files 表示源檔案的路徑,注意這個路徑是相對podspec檔案而言的。

s.frameworks 需要用到的frameworks,不需要加.frameworks字尾。

3、建立.podspec檔案 (在 Git倉庫根目錄) a 建立檔案,填寫内容(上方示例内容),根據内容進行修改 b Terminal指令 $ pod spec create MethodFactory

四、關于LICENSE檔案 CocoaPods 要求所有的Pods依賴庫都必須包含license檔案,否則在釋出CocoaPods官方時不予通過驗證。 license的類型有很多種,詳情可以參考網站https://tldrlegal.com。在建立github倉庫的時候,已經選擇了MIT類型的license。

五、關于主類檔案 建立Pods依賴庫就是為了友善别人使用我們的成果,比如我想共享給大家的MethodFactory類,提供給廣大使用者使用,這個類自然是必不可少的。我把這個類包含的兩個檔案放到一個名稱為MethodFactory的檔案夾中,對應的目錄結構如圖:

iOS 記錄之 CocoaPods Pods的制作(新版方式)

六、關于Demo工程 為了快速地教會别人使用我們的Pods依賴庫,通常需要提供一個Demo工程。我建立的Demo工程放到了一個名為MethodFactoryDemo的檔案夾中,該目錄包含的檔案如下圖所示:

iOS 記錄之 CocoaPods Pods的制作(新版方式)

七、關于README.md 使用github的人應該都熟悉這個檔案,它是一個成功github倉庫必不可少的一部分,使用的是markdown标記語言,用于對倉庫的詳細說明。 添加完上方檔案後,Github本地倉庫目錄就如下圖所示

iOS 記錄之 CocoaPods Pods的制作(新版方式)

八、将本地倉庫送出到 Github 中 1、pod 驗證 $ set the new version to 1.0.0 $ set the new tag to 1.0.0 $ pod lib lint

iOS 記錄之 CocoaPods Pods的制作(新版方式)

注意: pod 驗證過程中,出現任何warning 或者 error資訊,驗證都會失敗,請按照提示資訊,進行修改

2、上傳到 Github 中 $ git add -A && git commit -m “Release 1.0.0." $ git tag ‘1.0.0' $ git push --tags $ git push origin master

iOS 記錄之 CocoaPods Pods的制作(新版方式)

九、不釋出此Pods,直接使用Pods 如果沒有計劃在CocoaPods中釋出此Pods,可直接在項目的Podfile檔案中添加該 Pods并使用。 pod ‘MethodFactory’, :git => 'https://github.com/yanglei3kyou/MethodFactory.git'

十、上傳pod spec檔案到 CocoaPods官方倉庫中 新版CocoaPods上傳pod spec再也不需要像以往那種 - fork倉庫合并代碼了。 新版CocoaPods引入 pod trunk 來友善開發者上傳自己的pod。

官方指導文檔為 http://guides.cocoapods.org/making/getting-setup-with-trunk

我們簡化一下流程,就變成了 1.在pod trunk注冊自己的資訊

$ pod trunk register [email protected] 'Orta Therox' --description='macbook air'

iOS 記錄之 CocoaPods Pods的制作(新版方式)

2.找到自己封裝的xxx.podspec檔案,并上傳

$ pod trunk push xxx.podspec

iOS 記錄之 CocoaPods Pods的制作(新版方式)

3.送出完之後,若想檢視自己的庫,可以直接使用

$ pod search xxx

iOS 記錄之 CocoaPods Pods的制作(新版方式)