組件化第三篇:使用CocoaPods管理自己的框架

創(chuàng)建私有的Spec Repo

  • 新建一個私有索引庫的妖,可以使用GitHub
  • 添加遠(yuǎn)程索引庫時可以先檢查已有哪些倉庫
pod repo
  • 如果索引庫已經(jīng)存在可以先移除渔彰,再添加
pod repo remove 私有索引庫名
  • 添加私有索引庫
pod repo add 私有索引庫名 索引庫的git地址
  • 在添加私有索引庫遇到的問題
    • 問題描述
    fatal: unable to access 'https://github.com/xxx/xxSpecs.git/': LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443
    
    • 我的問題是因為開啟的VPN代理埃元,關(guān)閉代理后就順利添加成功了

創(chuàng)建組件庫

  • 新建一個私有組件庫莉掂,可以使用GitHub
  • 使用以下命令創(chuàng)建工程模板
pod lib create libName
  • 完善.podspec文件
    image.png
  • 在模板中的Classes文件夾下添加組件代碼(備注:空文件夾會被忽略)
  • 執(zhí)行pod install命令,將組件代碼和測試工程進(jìn)行關(guān)聯(lián)
  • 編譯沒問題后提交到遠(yuǎn)程倉庫
# 初始化git庫
# 通過上面的方式就不需要執(zhí)行此命令了
git init

# 將所有代碼文件添加到暫存區(qū)中
git add .
# 提交到本地倉庫中
git commit -m '注釋內(nèi)容'
# 查看狀態(tài)
git status
# 首先查看是否有遠(yuǎn)程倉庫
git remote
# 添加遠(yuǎn)程倉庫關(guān)聯(lián)
git remote add origin 遠(yuǎn)程倉庫地址
# 確認(rèn)遠(yuǎn)程倉庫是否添加成功
git remote
# 默認(rèn)為master分支
git push origin master
  • 打標(biāo)簽, 并提交到遠(yuǎn)程倉庫诬烹,因為podspec文件中必須制定版本號
# 添加Tag
git tag [-a] '1.0.0' [-m '初始版本']
# 查看分支
git tag
# 提交分支到遠(yuǎn)程倉庫
git push --tags
  • 刪除Tag
# 刪除本地tag
git tag -d tag版本號
# 查看分支
git tag
# 刪除遠(yuǎn)程tag,刪除后才可以重新建立
git push origin :tag版本號

項目的哪些文件需要上傳到遠(yuǎn)程倉庫

image.png
  • pod installpod update選擇
    • pod install庫會按照Podfile.lock文件(如果已經(jīng)存在弃鸦,不存在就會新建)中的版本號進(jìn)行指定版本庫的獲取绞吁,而pod update不管Podfile.lock文件是否存在,都更新最新版本的三方庫
    • 建議在此命令后加上--verbose --no-repo-update
    • 一般情況下唬格,第一次從共享庫把項目下載下來之后家破,應(yīng)該使用pod install命令安裝,而不是選擇pod update购岗,目的是為了保證大家使用的第三方框架版本一致
    • 如果以后大家需要升級第三方框架汰聋,那么大家約定好統(tǒng)一再執(zhí)行一次pod update
    • 建議在編寫podfile文件時喊积,明確指定第三方庫的版本烹困,格式如下:pod '第三方庫名稱', '~> 版本號',這樣不管使用pod install還是pod update效果都是一致的

上傳框架.podspec描述文件

  • 描述文件名和工程名稱保持一致
  • 填寫.podspec文件中的內(nèi)容乾吻,可以參考別的開源庫是如何填寫描述信息(比如AFNetworking)髓梅,也可以到官網(wǎng)中查看
  • 首先cd.podspec文件所在的位置,使用下面的命令本地驗證.podspec文件的有效性绎签,不會驗證tag
pod lib lint --verbose --allow-warnings
  • 遠(yuǎn)程驗證命令
pod spec lint 
  • 本地測試podspec文件
# 指定podspec文件
pod '框架名稱', :podspec => 'path/specName.podspec' 
pod install
  • 提交podspec到遠(yuǎn)程私有repo中
# 向本地索引庫中添加描述文件枯饿,同時會將此描述文件自動提交到遠(yuǎn)程私有索引庫中
pod repo push 本地私有索引庫名稱 specName.podspec --verbose --allow-warnings
  • 框架庫依賴設(shè)置:s.dependency '依賴庫名稱,在使用你的框架庫時會先安裝依賴庫
  • 補(bǔ)充:單獨創(chuàng)建.podspec文件的命令如下辜御,通過pod lib create libName命令創(chuàng)建的工程已經(jīng)自動創(chuàng)建了.podspec文件鸭你,所以無需單獨創(chuàng)建(了解即可)
# specName后面【不加后綴】
pod spec create specName

如何更新框架庫

  • 提交更新后的代碼
  • 打好tag
  • 更改.podspec文件中的版本號為最新的tag號,相關(guān)描述也做一定的修改
  • .podspec文件更新到私有索引庫中
  • 執(zhí)行pod update [--verbose --no-repo-update]

使用組件庫

# 搜索自己的庫
pod search libName

# 這里可能搜索不到擒权,可以先刪除~/Library/Caches/CocoaPods下的search_index.json文件袱巨,
# 然后重新搜索就會生新文件,在新文件中就會包含你自己的庫了
sudo rm ~/Library/Caches/CocoaPods/search_index.json

# 使用自己的庫
# -------------------------Podfile-------------------------
# 最低支持的iOS版本
platform :ios, '8.0'

# 指定的repo鏡像源
source 'https://github.com/CocoaPods/Specs.git'
# 遠(yuǎn)程私有庫
source '遠(yuǎn)程私有索引庫的git地址'

# 依賴目標(biāo)一般為項目名稱
target '依賴目標(biāo)' do
    pod 'myLibName', '~> 1.0.0'     # 自己的私有庫
end
# -------------------------Podfile-------------------------
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末碳抄,一起剝皮案震驚了整個濱河市愉老,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌剖效,老刑警劉巖嫉入,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件焰盗,死亡現(xiàn)場離奇詭異,居然都是意外死亡咒林,警方通過查閱死者的電腦和手機(jī)熬拒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來垫竞,“玉大人澎粟,你說我怎么就攤上這事』兜桑” “怎么了活烙?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長遣鼓。 經(jīng)常有香客問我啸盏,道長,這世上最難降的妖魔是什么骑祟? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任回懦,我火速辦了婚禮,結(jié)果婚禮上次企,老公的妹妹穿的比我還像新娘粉怕。我一直安慰自己,他們只是感情好抒巢,可當(dāng)我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著秉犹,像睡著了一般蛉谜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上崇堵,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天型诚,我揣著相機(jī)與錄音,去河邊找鬼鸳劳。 笑死狰贯,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的赏廓。 我是一名探鬼主播涵紊,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼幔摸!你這毒婦竟也來了摸柄?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤既忆,失蹤者是張志新(化名)和其女友劉穎驱负,沒想到半個月后嗦玖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡跃脊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年宇挫,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片酪术。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡器瘪,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出拼缝,到底是詐尸還是另有隱情娱局,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布咧七,位于F島的核電站衰齐,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏继阻。R本人自食惡果不足惜耻涛,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望瘟檩。 院中可真熱鬧抹缕,春花似錦、人聲如沸墨辛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽睹簇。三九已至奏赘,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間太惠,已是汗流浹背磨淌。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留凿渊,地道東北人梁只。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像埃脏,于是被迫代替她去往敵國和親搪锣。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,527評論 2 349