使用Pod Lib創(chuàng)建

入門

我們將通過使用 pod lib create 來創(chuàng)建一個完整的 pod 來引導過程。 所以讓我們從最初的命令開始:

pod lib create MyLibrary

注意:要使用您自己的pod-template是趴,您可以添加參數(shù)--template-url = URL涛舍,其中URL是包含兼容模板的git repo。
第二個注意:您可以按回車鍵選擇默認(帶下劃線)選項唆途。

Objective-C 或者 Swift

你被問到的第一個問題是你想要創(chuàng)建一個 pod 的語言做盅。對于這兩種選擇,CocoaPods都會將你的庫設置為一個框架窘哈。

制作演示應用程序

該模板將為您的庫生成一個Xcode項目吹榴。 這意味著您不必在Xcode中創(chuàng)建新項目。

如果你想為 pod 嘗試一個 MyLib 的示例項目滚婉,或者需要讓你的庫的測試在應用程序中運行(交互測試图筹,自定義字體等), 一個很好的指標, 是這個 Pod 應該包含屏幕截圖; 如果是這樣让腹,那么你應該有一個演示远剩。

選擇測試框架

你應該測試你的 Library .測試可以確保當你的 Library 被人使用時的穩(wěn)定性. 在開放源代碼庫中,這意味著人們可以在知道自己沒有違背隱含期望的情況下進行更改. 我們推薦使用測試框架,而不是緊緊依賴Apple的XCTest.在Objective-C中骇窍,我們包含兩種流行測試框架的選擇; Specta / Expecta和Kiwi . 如果您不能決定,請使用Specta / Expecta.

  • Specta/Expecta : Objective-C和Cocoa的輕量級TDD / BDD框架瓜晤。GitHub repo
  • Kiwi : Kiwi是iOS開發(fā)的行為驅動開發(fā)庫。 目標是提供一個安裝和使用起來非常簡單的BDD庫腹纳。GitHub repo

主要區(qū)別在于Kiwi是一種對存 Stubs/Mocks/Expectations 的一體化方法痢掠,而Specta / Expecta是通過不同Podspecs的模塊化方法。 我們在MyLib-Tests.pch中包含了所有必要的包含和設置嘲恍,以便您不必將它們包含在每個文件中足画。

在Swift中,我們只提供Quick / Nimble選項佃牛,因為這看起來是主要的測試庫淹辞。

基于視圖的測試

根據(jù)您建立的庫,您可能會發(fā)現(xiàn)基于快照的測試是驗證視圖上不同操作結果的智能方法俘侠。 我們建議使用FBSnapShotTestCase象缀,如果您使用的是Specta / Expecta,那么我們會包含一個Pod來改進語法爷速。

Objective-C的前綴

為了包裝一個Objective-C項目央星,我們想知道你的類的前綴。 這意味著我們可以讓所有由CocoaPods生成的類都適合您的樣式遍希,并且從Xcode內部生成的所有類都將以您的前綴開頭等曼。 我們知道Apple不贊成使用前綴里烦,但實際上它們在Objective-C代碼庫中仍然占有一席之地凿蒜。

Pod Lib創(chuàng)建模板

隨著問題的結束禁谦,我們在新創(chuàng)建的Project上運行pod安裝。 讓我們看看結果:

$ tree MyLib -L 2

  MyLib
  ├── .travis.yml
  ├── _Pods.xcproject
  ├── Example
  │   ├── MyLib
  │   ├── MyLib.xcodeproj
  │   ├── MyLib.xcworkspace
  │   ├── Podfile
  │   ├── Podfile.lock
  │   ├── Pods
  │   └── Tests
  ├── LICENSE
  ├── MyLib.podspec
  ├── Pod
  │   ├── Assets
  │   └── Classes
  │     └── RemoveMe.[swift/m]
  └── README.md

我們已盡量減少根文件夾中的數(shù)量废封,您將看到以下文件:

  • .travis.yml - a setup file for travis-ci.
  • _Pods.xcproject - a symlink to your Pod's project for Carthage support
  • LICENSE - defaulting to the MIT License.
  • MyLib.podspec - the Podspec for your Library.
  • README.md - a default README in markdown.
  • RemoveMe.swift/m - a single file to to ensure compilation works initially.

和以下文件夾:

  • Pod - 這是你放置你的 Library 的類的地方
  • Example - 這是生成的Demo&Testing包

把 Library 放在一起

CocoaPods會馬上打開你的Xcode項目; 從那里你可以編輯由CocoaPods生成的所有文件州泊。 我們來看看Xcode的擴展版本:

image.png
  • 您可以編輯您的Podspec元數(shù)據(jù),這可以讓您更改自述文件和Podspec漂洋。
  • 這是演示庫遥皂,如果你沒有對它作出肯定的回答,你會錯過這個刽漂。
  • 這是您之前選擇的框架的一個殘缺測試規(guī)范演训。
  • 這是 Development Pods 部分,實際上您可以在 Library 工作贝咙。 請參閱下面的詳細信息样悟。
  • 最后在設置項目時使用Pods。

在這里值得一提的是庭猩,因為這經(jīng)常吸引人們窟她,所以Swift庫需要將它的類聲明為public,以便在示例庫中看到它們蔼水。

Development Pods

Development Pod與普通的CocoaPods不同震糖,它們是符號鏈接的文件,所以編輯它們會改變原始文件趴腋,所以你可以在Xcode中使用你的庫吊说。 您的演示和測試需要使用#import <MyLib / XYZ.h>格式包含對標題的引用。

注意:由于Development Pod的實現(xiàn)細節(jié)优炬,當您將新的/現(xiàn)有的文件添加到Pod / Classes或Pod / Assets或更新您的podspec時疏叨,應該運行pod install或pod update。

添加Travis CI

該模板包含一個.travis.yml文件穿剖,該文件將運行項目中包含的默認測試蚤蔓。 如果你在GitHub上有一個開源的 repo,打開Travis CI上的個人資料并開啟庫糊余。

部署 Library

所以你已經(jīng)準備好了 Library秀又。 首先,您應該檢查 Podspec 是否正確刪除贬芥,因為您無法部署錯誤吐辙。 這可以用兩種方法完成,即 pod lib lint 和 pod spec lint蘸劈。 它們之間的區(qū)別在于 pod lib lint 不訪問網(wǎng)絡昏苏,而 pod spec lint 檢查外部回購和相關標簽。

如果您將開源庫部署到 trunk,則不能有 CocoaPods 警告贤惯。 盡管你可以有 Xcode 警告洼专。 您應該繼續(xù)使用 trunk guide
開始部署給公眾。

如果您正在部署到私人Specs repo孵构,您需要添加 repo屁商。 查看 Private Specs Repos 的指南來設置。 如果要部署到現(xiàn)有的Private Repo颈墅,請使用以下命令來部署:

pod repo push SPEC_REPO *.podspec --verbose
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末蜡镶,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子恤筛,更是在濱河造成了極大的恐慌官还,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件毒坛,死亡現(xiàn)場離奇詭異妻枕,居然都是意外死亡,警方通過查閱死者的電腦和手機粘驰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門屡谐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蝌数,你說我怎么就攤上這事愕掏。” “怎么了顶伞?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵饵撑,是天一觀的道長。 經(jīng)常有香客問我唆貌,道長滑潘,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任锨咙,我火速辦了婚禮语卤,結果婚禮上,老公的妹妹穿的比我還像新娘酪刀。我一直安慰自己粹舵,他們只是感情好,可當我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布骂倘。 她就那樣靜靜地躺著眼滤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪历涝。 梳的紋絲不亂的頭發(fā)上诅需,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天漾唉,我揣著相機與錄音,去河邊找鬼堰塌。 笑死赵刑,一個胖子當著我的面吹牛,可吹牛的內容都是我干的蔫仙。 我是一名探鬼主播,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼丐箩,長吁一口氣:“原來是場噩夢啊……” “哼摇邦!你這毒婦竟也來了?” 一聲冷哼從身側響起屎勘,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤施籍,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后概漱,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體丑慎,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年瓤摧,在試婚紗的時候發(fā)現(xiàn)自己被綠了竿裂。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡照弥,死狀恐怖腻异,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情这揣,我是刑警寧澤悔常,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站给赞,受9級特大地震影響机打,放射性物質發(fā)生泄漏。R本人自食惡果不足惜片迅,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一残邀、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧柑蛇,春花似錦罐旗、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至粘我,卻和暖如春鼓蜒,著一層夾襖步出監(jiān)牢的瞬間痹换,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工都弹, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留娇豫,地道東北人。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓畅厢,卻偏偏與公主長得像冯痢,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子框杜,可洞房花燭夜當晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內容