制作自己的開源項(xiàng)目支持Cocoapods下載

對于開發(fā)者來說,隨著自己的開發(fā)經(jīng)驗(yàn)越來越久卫袒,或是自己對于某個(gè)方面宵呛、知識點(diǎn)研究的比較透徹,應(yīng)該都會嘗試著寫一個(gè)屬于自己專屬的功能文件夕凝,比如呢:圖片輪播宝穗、相冊選擇户秤、文件上傳下載、音視頻播放逮矛、UI動畫鸡号、自動布局、刷新數(shù)據(jù)等…但怎么讓自己寫好的開源文件支持Cocoapods下載方便自己须鼎、他人使用呢鲸伴,相信你認(rèn)真看過這文章后一定也會掌握好這項(xiàng)技能的。

準(zhǔn)備條件: GitHub賬號晋控,Trunk賬號汞窗,GitHub Desktop客戶端,Markdown編輯器

1. 創(chuàng)建開源的Public倉庫

GitHub個(gè)人主頁創(chuàng)建任意一個(gè)你想開源的倉庫

包含的術(shù)語:
Repository name倉庫名稱
README說明文檔
.gitignore包含的文件類型赡译,即.git文件類型GitHub都不會將其加入到版本管理中
license文件(正規(guī)的倉庫都應(yīng)該有必須有且有一個(gè)仲吏,Pods依賴庫對這個(gè)文件的要求更嚴(yán))

創(chuàng)建步驟如圖

接著clone到本地GitHub Desktop

clone本地

Finder打開本倉庫,看到目錄結(jié)構(gòu)如下

Snip20160717_12.png

2. 創(chuàng)建podspec描述文件

podspec文件:
它本質(zhì)是個(gè)ruby文件蝌焚,里面包含代碼的作者裹唆、版本號、源代碼地址只洒、依賴庫等信息的文件许帐,任何支持Cocoapods的開源代碼都必須有podspec文件,這樣開源很方便的讓Cocoapods搜索到對應(yīng)的podspec

創(chuàng)建podspec文件

pod spec create 工程名

創(chuàng)建好之后在Finder中看到的目錄結(jié)構(gòu)如下

創(chuàng)建podspec之后目錄結(jié)構(gòu)

接著在工程文件內(nèi)部添加你自己的開源文件(文件名建議和工程名一樣)红碑,這時(shí)也可以添加為開源框架說寫的Demo舞吭,這樣方便開發(fā)者更好的理解、使用等(這不是必須的析珊,但我個(gè)人還是強(qiáng)烈建議用封裝好的開源文件寫個(gè)Demo

整體目錄結(jié)構(gòu)

這時(shí)再打開客戶端GitHub Desktop,可以看到待提交文件和歷史提交記錄等

待提交文件

然后打開并編輯自己倉庫的podspec描述文件

編輯podspec描述文件

podspec常用的參數(shù)的含義解釋如下:

s.name 倉庫名字
s.license 文件類型
s.requires_arc 是否支持ARC
s.version 當(dāng)前版本號
s.platform 支持的平臺
s.framework 導(dǎo)入依賴的框架庫
s.summary 倉庫功能的描述
s.author 作者信息
s.source_files 源文件的路徑(相對podspec文件而定)
s.resourcs 資源文件蔑穴,不需參與編譯的
s.homepage 主頁地址
s.source 具體路徑
s.public_header_files 預(yù)編譯頭文件路徑

podspec語法結(jié)構(gòu)

Pod::Spec.new do |s|
 ...
 ... 
s.subspec '子目錄' do |ss|
 ...
end 
s.subspec '子目錄' do |ss|
 ... 
end 

end

即:它從Pod::Spec.new do |s|開始忠寻,到最后一個(gè)end結(jié)束中間每一個(gè)subspec到end是一個(gè)子目錄,子目錄對應(yīng)的|**|中間名字是可以任意給命名的存和,但子目錄內(nèi)部使用的名稱必須一致

podspec通配符的說明

- a{bb,bc}def.{h,m}表示四個(gè)文件abbdef.h abbdef.m abcdef.h abcdef.m
- *.{h,m,mm}表示所有的.h .m .mm文件
- Class/**/*.{h,m}表示Class目錄下的所有.h .m文件
3. 為源代碼添加對應(yīng)的Tag
  1. 在GitHub上面的源代碼需要打上版本號標(biāo)簽奕剃,這樣Cocoapods管理器才能更準(zhǔn)確地找到你的repo
  2. 通過Iterm命令push源代碼的tag
git tag '0.0.1' //版本號 
git push --tags //提交標(biāo)簽

截圖如下:


Snip20160717_13.png

這時(shí)打開自己的GitHub主頁

注意:若是以上步驟都不錯(cuò)的話,這時(shí)Tags下的文件和Branches下的文件應(yīng)是一一對應(yīng)的捐腿,如下:

Snip20160717_14.png
Snip20160717_15.png
4. 驗(yàn)證podspec文件的正確性
pod spec lint 工程名字.podspec --verbose

成功之后的截圖如下:


Snip20160717_16.png

注意:任何的警告纵朋、錯(cuò)誤都是不能被添加到Spec Repo

5. 通過Trunk推送給Cocoapods服務(wù)器

首先向trunk服務(wù)器查詢自己的注冊信息

pod trunk me

存在Trunk賬號截圖:

Snip20160717_17.png

沒有注冊Trunk的話,注冊一個(gè)賬號

  • 先確認(rèn)當(dāng)前的Cocoapods版本號(最低要求版本0.33)茄袖,現(xiàn)在最新的版本號好像是1.0.1
pod --version / gem list --local | grep cocoapods

若是版本不滿足操软,更新一下

sudo gem install cocoapods

注冊Trunk賬號,回車之后去打開郵箱的鏈接(需要copy宪祥,不能直接點(diǎn)擊)即可完成

pod trunk register 郵箱全稱 '用戶名' --verbose

最后通過終端push對應(yīng)的podspec聂薪,完成開源項(xiàng)目支持Cocoapods下載的最后一步

pod trunk push 工程名字.podspec

成功的結(jié)果截圖:


Snip20160717_18.png
5. 更新本地pod依賴庫
pod setup

結(jié)果截圖如下:


Snip20160717_19.png

這時(shí)就可以搜索自己剛提交過的開源文件


Snip20160717_20.png
  • 成功之后Cocoapods服務(wù)器會將上傳的podspec文件轉(zhuǎn)換為需要的json文件
  • 檢驗(yàn)?zāi)阕约旱拈_源描述文件
  • 前往文件夾 - ~/.cocoapods/repos/master/Specs找到對已應(yīng)的json文件家乘,如截圖所示:
    Snip20160717_21.png

打開json文件內(nèi)容:

Snip20160717_22.png

  • 此刻,你也可以在Cocoapods官方的spec文件中查詢到對應(yīng)的json文件藏澳,Cocoapods的Spec仁锯,方法如上面所示,這里省略…

自此翔悠,制作自己的開源項(xiàng)目支持Cocoapods下載的全部操作流程結(jié)束业崖。

6. 更新倉庫的版本

若是修改描述文件、更新開源文件等都需要重新更新倉庫
步驟如下:

  • 修改podspectag(代碼版本號)
  • 重新trunkCocoapods服務(wù)器

今回家早了些蓄愁,自己最近在寫即時(shí)通訊IM的東西双炕,忙的好久沒上過簡書了,還好現(xiàn)在終于給這個(gè)知識點(diǎn)寫完了…晚安啦涝登。雄家。。

最后附上之前的參考鏈接:
CocoaPods安裝使用及配置私有庫

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末胀滚,一起剝皮案震驚了整個(gè)濱河市趟济,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌咽笼,老刑警劉巖顷编,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異剑刑,居然都是意外死亡媳纬,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門施掏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來钮惠,“玉大人,你說我怎么就攤上這事七芭∷赝欤” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵狸驳,是天一觀的道長预明。 經(jīng)常有香客問我,道長耙箍,這世上最難降的妖魔是什么撰糠? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮辩昆,結(jié)果婚禮上阅酪,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好遮斥,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布峦失。 她就那樣靜靜地躺著,像睡著了一般术吗。 火紅的嫁衣襯著肌膚如雪尉辑。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天较屿,我揣著相機(jī)與錄音隧魄,去河邊找鬼。 笑死隘蝎,一個(gè)胖子當(dāng)著我的面吹牛购啄,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播嘱么,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼狮含,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了曼振?” 一聲冷哼從身側(cè)響起几迄,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎冰评,沒想到半個(gè)月后映胁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡甲雅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年解孙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片抛人。...
    茶點(diǎn)故事閱讀 39,690評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡弛姜,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出妖枚,到底是詐尸還是另有隱情娱据,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布盅惜,位于F島的核電站,受9級特大地震影響忌穿,放射性物質(zhì)發(fā)生泄漏抒寂。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一掠剑、第九天 我趴在偏房一處隱蔽的房頂上張望屈芜。 院中可真熱鬧,春花似錦、人聲如沸井佑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽躬翁。三九已至焦蘑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間盒发,已是汗流浹背例嘱。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留宁舰,地道東北人拼卵。 一個(gè)月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像蛮艰,于是被迫代替她去往敵國和親腋腮。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評論 2 353

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