Using Pod Lib Create(譯)

官方原文地址

入門

我們將使用pod lib create指令來展示創(chuàng)建一個完整的Pods的引導(dǎo)過程巷懈。所以讓我們從初始命令開始:

pod lib create MyLibrary

注意:你可以通過在--template-url=URL后面添加包含可用模板的git倉庫的URL使用你自己的 pod-template

第二個注意:你可以點(diǎn)擊回車來選擇默認(rèn)的選擇(也就是下劃線標(biāo)注的選擇)炮车。

Objective-C 或者 Swift

你被詢問的第一個問題是你想要在pod編譯中使用什么語言。對于所有的選擇肌割,CocoaPods都將會將你的library配置為framework跺株。

制作一個Demo應(yīng)用

模板將會為你的library生成一個Xcode工程項(xiàng)目苍日。這意味著你不用在Xcode上創(chuàng)建新項(xiàng)目了。

如果你想要有一個pod try MyLib指令能運(yùn)行的示例工程,或者需要擁有能在應(yīng)用里測試你自己library(交互檢驗(yàn)袱吆,自定義字體等等)的厌衙,你應(yīng)該說Yes。一個很好的標(biāo)準(zhǔn)就是“這個pod是否包含一個屏幕截圖”绞绒。那么婶希,你需要有一個Demo。

選擇一個測試的framework

你應(yīng)該測試你的library蓬衡。測試要保證人們使用你的library的穩(wěn)定性喻杈。在開源庫中這意味著人們可以改變來達(dá)到他們內(nèi)心的期望。我們推薦使用一個測試framework而不是指望蘋果的狰晚,雖然他也包含測試筒饰。在Objective-C中我們列入了兩個流行的測試framework: Specta/Expecta 和 Kiwi。如果你不能決定壁晒,使用Specta/Expecta瓷们。

Specta/Expecta

一個輕量級的TDD / BDD framework 適用于 Objective-C 和 Cocoa。
GitHub repo

Kiwi

Kiwi是iOS開發(fā)的行為驅(qū)動開發(fā)庫秒咐。目標(biāo)是提供一個設(shè)置和使用非常簡單的BDD庫谬晕。
GitHub repo

主要的區(qū)別在于Kiwi是一個Stubs/Mocks/Expectations一體化的方式,然而Specta/Expecta是一個通過不同Podspecs模塊化的方式携取。我們列入了所有必需的星系攒钳,以及配置你的測試framework到MyLib-Tests.pch,因此你不用將它們列入各個文件雷滋。
在Swift中夕玩,我們只提供了Quick/Nimble,因?yàn)樗亲钪髁鞯臏y試庫惊豺。

基于視圖的測試

根據(jù)你編譯的庫,你會發(fā)現(xiàn)基于快照的測試是一種聰明的方式來驗(yàn)證在你頁面上不同操作的結(jié)果(different actions on your views官方推薦在這里的庫)禽作。我們推薦使用FBSnapShotTestCase尸昧。如果您正在使用Specta / Expecta,那么我們會添加一個Pod來改進(jìn)語法旷偿。

Objective-C的前綴

通過包圍住一個Objective-C項(xiàng)目讓我們來知道你的前綴烹俗。這意味著我們可以使CocoaPods生成的所有類都適合您的樣式,所有從Xcode內(nèi)部生成的類都將以您的前綴開頭萍程。我們知道蘋果公司正在棄用前綴幢妄,但實(shí)際上它們?nèi)匀辉贠bjective-C代碼庫中占有一席之地。

Pod庫創(chuàng)建模板

有了這些問題茫负,我們在新創(chuàng)建的項(xiàng)目上運(yùn)行pod安裝蕉鸳。 我們來看看結(jié)果:

$ 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 - travis-ci的一個配置文件。
  • _Pods.xcproject - 你Pod的項(xiàng)目與Carthage支持的符號連接
  • LICENSE - 證書 MIT License.
  • MyLib.podspec - 你的library的Podspec.
  • README.md - 默認(rèn)的markdown的README文件.
  • RemoveMe.swift/m - 保證初始化編譯工作的文件.

以及接下來的文件:

  • Pod - 你library的類的地方
  • Example - 生成的Demo項(xiàng)目 & 測試包

將你的Library放在一起

CocoaPods將直接打開你的項(xiàng)目潮尝;從這里你能編輯所有CocoaPods生成的文件榕吼。讓我們來看一下一個版本的Xcode:

  1. 您可以編輯您的Podspec元數(shù)據(jù),這樣可以更改您的README和Podspec勉失。
  2. 這是一個Demo Library羹蚣,如果你不對這個說Yes,你將會失去它乱凿。
  3. 這是你之前選擇后創(chuàng)建的測試Spec顽素。
  4. 這是Pods開發(fā)部分,是你Library實(shí)際工作的地方徒蟆⌒渤觯看它下面的更多的信息。
  5. Pods用于配置項(xiàng)目的地方

這里值得一提的是后专,人們經(jīng)常需要注意的一點(diǎn)划鸽,Swift的Library需要將其類聲明為公開,以便在您的示例庫中查看它們戚哎。

Pods的開發(fā)

開發(fā)Pods與正常的CocoaPods不同裸诽,因?yàn)樗鼈兪欠栨溄拥奈募詫λ鼈冞M(jìn)行編輯會改變原始文件型凳,所以你可以從Xcode里對Library工作丈冬。你的Demo & 測試將需要使用#import <MyLib / XYZ.h>格式列出對頭文件的引用。

添加Travis CI

模板包含一個.travis.yml文件甘畅,將會運(yùn)行項(xiàng)目內(nèi)包含的默認(rèn)的測試埂蕊。如果您有GitHub的開源代碼,請在Travis CI上打開您的 profile疏唾,并打開庫的開關(guān)蓄氧。

部署你的Library

所以你的Library準(zhǔn)備好了喉童。首先你應(yīng)該檢查是否Podspec正確堂氯,因?yàn)槟悴渴鸬臅r候不能有錯誤。這可以有兩種方法做到晶框,pod lib lintpod spec lint畜埋。兩個指令的不同點(diǎn)在于pod lib lint不用訪問網(wǎng)路悠鞍,而pod spec lint檢查外部repo和相關(guān)標(biāo)簽咖祭。如果您正在將一個開源庫部署到trunk上么翰,則不能有CocoaPods警告。你Xcode內(nèi)部可以有警告码耐。您應(yīng)該繼續(xù)開始根據(jù)getting started with trunk 指導(dǎo)來部署到公眾。

如果您正在部署到一個私人的Specs repo束铭,您將需要添加repo。請參閱Private Specs Repos的指南來進(jìn)行設(shè)置懈万。 如果要部署到現(xiàn)有的私人Repo贷掖,請使用此命令進(jìn)行部署

pod repo push SPEC_REPO *.podspec --verbose

完成

??

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市掷酗,隨后出現(xiàn)的幾起案子技肩,更是在濱河造成了極大的恐慌虚婿,老刑警劉巖然痊,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡袋马,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進(jìn)店門祸挪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來贿条,“玉大人胧辽,你說我怎么就攤上這事邑商】源樱” “怎么了蝉绷?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵讼载,是天一觀的道長中跌。 經(jīng)常有香客問我咨堤,道長,這世上最難降的妖魔是什么漩符? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任一喘,我火速辦了婚禮,結(jié)果婚禮上嗜暴,老公的妹妹穿的比我還像新娘凸克。我一直安慰自己,他們只是感情好闷沥,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布萎战。 她就那樣靜靜地躺著,像睡著了一般舆逃。 火紅的嫁衣襯著肌膚如雪蚂维。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天路狮,我揣著相機(jī)與錄音虫啥,去河邊找鬼。 笑死奄妨,一個胖子當(dāng)著我的面吹牛涂籽,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播展蒂,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼又活,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了锰悼?” 一聲冷哼從身側(cè)響起柳骄,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎箕般,沒想到半個月后耐薯,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡丝里,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年曲初,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片杯聚。...
    茶點(diǎn)故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡臼婆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出幌绍,到底是詐尸還是另有隱情颁褂,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布傀广,位于F島的核電站颁独,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏伪冰。R本人自食惡果不足惜誓酒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望贮聂。 院中可真熱鬧靠柑,春花似錦、人聲如沸寂汇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽骄瓣。三九已至停巷,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間榕栏,已是汗流浹背畔勤。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留扒磁,地道東北人庆揪。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像妨托,于是被迫代替她去往敵國和親缸榛。 傳聞我的和親對象是個殘疾皇子吝羞,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評論 2 344

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