從零開(kāi)始 一步步將自己的框架導(dǎo)入CocoaPods

寫(xiě)在前面

對(duì)于做iOS開(kāi)發(fā)的來(lái)說(shuō),不知道CocoaPods無(wú)異于耍流氓。日常開(kāi)發(fā)中我們經(jīng)常會(huì)使用它來(lái)管理我們的三方庫(kù)。用別人的框架用得太多了,慢慢的,擼的代碼越來(lái)越多,會(huì)發(fā)現(xiàn)自己在不知不覺(jué)間收集了很多好用的擴(kuò)展,或者那天自己寫(xiě)出一個(gè)比較優(yōu)秀的效果,會(huì)想著將這些東西分享出來(lái)。當(dāng)然,我們可以將代碼直接丟到GitHub之類的代碼托管平臺(tái),供大家參考。某年某月某一天,你心血來(lái)潮的也想擼個(gè)框架。什么?你寫(xiě)了一個(gè)框架,竟然不支持CocoaPods?程序員大多數(shù)都是懶的,能用一行代碼解決的事情絕不寫(xiě)兩行,更何況CocoaPods這么好用的東西,好的框架不支持怎么行啊?這里把自己寫(xiě)的小東西是如何一步一步支持CocoaPods的作一個(gè)介紹。希望有需要的小伙伴能從這里看到你想要的東西。

1.創(chuàng)建一個(gè)開(kāi)源項(xiàng)目

在GitHub上創(chuàng)建一個(gè)開(kāi)源項(xiàng)目,將自己想要開(kāi)源的東西先托管到GitHub上。這個(gè)步驟不是本篇文章的關(guān)鍵,這里不多作贅述。如果不熟悉的小伙伴請(qǐng)自行谷歌上百度一下,或者就近在簡(jiǎn)書(shū)你搜索一下說(shuō)不定也有奇效。

2.給項(xiàng)目打上Tag

在項(xiàng)目的GitHub主頁(yè)中,點(diǎn)擊release直接創(chuàng)建一個(gè)Tag就好了。這里的Tag在后面會(huì)用到。

3.在工程中的根目錄下創(chuàng)建一個(gè)podspec文件

具體的做法是cd到工程根目錄,執(zhí)行下面的命令。

pod spec create 你想要的名字

執(zhí)行命令會(huì)在該目錄下生成一個(gè) 你想要的名字.podspec文件。

4.編輯podspec文件

還是在剛剛的目錄下,執(zhí)行下面命令。

vim 你想要的名字.podspec

進(jìn)入之后你會(huì)發(fā)現(xiàn)這個(gè)文件中有非常詳細(xì)的文檔說(shuō)明。按照文檔的說(shuō)明將我們的項(xiàng)目的信息填寫(xiě)上就好了。當(dāng)然,我們也可以直接在GitHub上隨便找一個(gè)開(kāi)源項(xiàng)目。然后把它的podspec文件打開(kāi)。然后對(duì)著修改自己的podspec文件就好了。這里貼出我的一個(gè)podspec文件供大家參考。

Pod::Spec.new do |s|
s.name = 'AnimatedLayout'
s.version = '1.0.0'
s.license = 'MIT'
s.summary = 'An animatedLayout of UICollectionView'
s.homepage = 'https://github.com/jhchenchong/AnimatedLayout'
s.authors = { '浪漫戀星空' => '727378500@qq.com' }
s.source = { :git => 'https://github.com/jhchenchong/AnimatedLayout.git', :tag => s.version.to_s }
s.requires_arc = true
s.ios.deployment_target = '8.0'
s.source_files = 'AnimatedLayout/AnimatedLayout/AnimatedLayout/*.{h,m}'
end

s.version就是之前說(shuō)的要用到的Tag(這里一定要保持一致)。

s.source_files這個(gè)文件目錄結(jié)構(gòu),跟自己的目錄結(jié)構(gòu)是有關(guān)的。


目錄

這是我的目錄,可以根據(jù)實(shí)際情況修改自己的s.source_files。

還有其他的一些命令,比如說(shuō)你的框架中所依賴的核心庫(kù),可以使用下面的命令。

s.framework = "Framework1","Framework2"

如果你的項(xiàng)目中還依賴了三方的庫(kù),可以像這樣使用:

s.dependency "AFNetworking", "~> 3.1"

如果要依賴很多的三方庫(kù),就按照上面的寫(xiě)法,多寫(xiě)幾個(gè)s.dependency就好了。

編輯完podspec文件之后,需要驗(yàn)證該文件。

pod spec lint xxx.podspec

xxx passed validation 說(shuō)明驗(yàn)證通過(guò)了。如果出現(xiàn)警告或者錯(cuò)誤,對(duì)照著提示開(kāi)始改,一直改到?jīng)]有錯(cuò)誤為止。最開(kāi)始填寫(xiě)的時(shí)候總是會(huì)有一些小問(wèn)題,不要著急,一點(diǎn)一點(diǎn)慢慢的修改就好了。

5.注冊(cè)Trunk

這里需要CocoaPods的版本在0.33以上,現(xiàn)在應(yīng)該都是在這個(gè)版本之上了吧。執(zhí)行 pod --version 命令查看CocoaPods版本信息。如果不滿足的話,請(qǐng)先更新到正確的版本。

pod trunk register '郵箱' --description='描述'

注冊(cè)成功的話,郵箱會(huì)收到驗(yàn)證郵件。點(diǎn)進(jìn)去激活就好了。

pod trunk me

執(zhí)行該命令,可以查看自己的信息。

6.pod trunk push

執(zhí)行命令

pod trunk push xxx.podspec

前面的podspec文件如果驗(yàn)證都合法的話,恭喜你,你應(yīng)該已經(jīng)將自己的框架增加了CocoaPods支持。

最后,如果你在執(zhí)行pod search 命令的時(shí)候發(fā)現(xiàn)找不到自己的框架。可以嘗試下面的方法。

  • 執(zhí)行 pod setup 命令
  • 等待 pod setup 成功
  • 執(zhí)行 rm ~/Library/Caches/CocoaPods/search_index.json
    做完這些之后,在 pod search 一下試試。

參考文獻(xiàn)

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

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

  • 一、創(chuàng)建的github倉(cāng)庫(kù)原文地址 1 進(jìn)入Github網(wǎng)站www.github.com登陸自己的賬號(hào)后 2 建立...
    freesan44閱讀 3,972評(píng)論 2 12
  • 項(xiàng)目組件化、平臺(tái)化是技術(shù)公司的共同目標(biāo),越來(lái)越多的技術(shù)公司推崇使用pod管理第三方庫(kù)以及私有組件,一方面使項(xiàng)目架構(gòu)...
    swu_luo閱讀 22,248評(píng)論 0 39
  • 網(wǎng)上將自己的項(xiàng)目做成Pod 的文檔很多,但是有些文檔已經(jīng)很老了,不適合新手上手,經(jīng)過(guò)這兩天的研究我決定還是自己寫(xiě)一...
    黃魚(yú)兒啦啦啦閱讀 7,179評(píng)論 10 17
  • Ruby 安裝 要安裝cocospods 首先需要安裝ruby,可以先安裝xcode,再安裝macport ,最后...
    山天大畜閱讀 1,897評(píng)論 0 1
  • 看完《聞香識(shí)女人》,不由在腦子里像電影一樣放映著自己的過(guò)往。這是一部讓人相信正直和善良的電影。正直,我一直想...
    鹿鹿無(wú)畏閱讀 721評(píng)論 0 51