cocoapods私有庫創(chuàng)建步驟和問題

目的

不知道小伙伴們會在什么樣的情況下用到私有庫。我最初是在組件化拆分項(xiàng)目,接觸到這個(gè)概念。項(xiàng)目解耦拆分成功之后,需要通過cocoapods創(chuàng)建和管理私有庫。再次建立私有庫,是因?yàn)轫?xiàng)目需要一個(gè)公共的基礎(chǔ)模塊。

建立cocoapods私有庫步驟

1.在gitlabel或者coding.net上創(chuàng)建一個(gè)倉庫,用來管理代碼和版本控制。

2.創(chuàng)建LICENSE文件,這個(gè)文件一定要?jiǎng)?chuàng)建,不然無法提交到cocoapods

3.在文件所在位置,創(chuàng)建podspec文件,并且配置相關(guān)信息。

Pod::Spec.new do |s|
  #名字
  s.name         = "Text"
  #版本號
  s.version      = "0.0.1"
   #摘要
  s.summary      = "測試私有庫創(chuàng)建"
  #描述
  s.description  = <<-DESC
  This is a base component library that can be used for all project base files.
                   DESC
  #倉庫地址
  s.homepage     = "倉庫地址"
  #寫死即可
  s.license      = "MIT"
  #創(chuàng)建者郵箱
  s.author       = { "linxia" => "xxxxxx@xxx.com" }
  #支持系統(tǒng)
  s.platform     = :ios, "8.0"
  #源地址和版本
  s.source       = { :git => "倉庫地址", :tag => "#{s.version}" }
  s.requires_arc = true
  #私有庫文件
  s.source_files = 'Text/**/*.{h,m}'
  #私有庫資源文件這里不僅僅是bundle文件,例如xib等
  s.resources = 'Text/**/*.{bundle}'
  #依賴庫,如果你要導(dǎo)入這個(gè)私有庫,一下庫如果在你的工程里面沒有導(dǎo)入,就會一起導(dǎo)入。如果已經(jīng)導(dǎo)入也不會重復(fù)導(dǎo)入。
  s.dependency 'AFNetworking', '3.1.0'
  s.dependency 'Masonry', '1.1.0'
  s.dependency 'SDWebImage', '4.2.1'
  s.dependency 'MJExtension', '3.0.13'
  s.dependency 'MBProgressHUD', '1.0.0'
  s.dependency 'MJRefresh', '3.1.15'
  s.dependency 'TPKeyboardAvoiding', '1.3.1'
  s.dependency 'DZNEmptyDataSet', '1.8.1'
  #下面注釋部分是拆分,具體的意思就是把項(xiàng)目中的某一個(gè)模塊拆分出來,可以單獨(dú)的給其它地方使用。
  # s.subspec 'oneText' do |oneText|
  # oneText.source_files = 'OneText/OneText/**/*.{h,m}'
  # oneText.dependency 'XTesting/core'
  # end

  # s.subspec 'twoText' do |twoText|
  # twoText.source_files = 'TwoText/TwoText/**/*.{h,m}'
  # twoText.resources = 'TwoText/TwoText/**/*.{xib}'
  # twoText.dependency 'XTesting/core'
  # end

end

驗(yàn)證 pod lib lint Text.podspec --allow-warnings --use-libraries --verbose

source_file 路徑要配置正確,如果驗(yàn)證報(bào)錯(cuò)--verbose 會給你提示,解決響應(yīng)的錯(cuò)誤,直到驗(yàn)證通過為止。
驗(yàn)證通過會顯示綠色文字:Text passed validation

  1. 建立與私有倉庫的關(guān)聯(lián),并且將本地的文件上傳到私有倉庫。
    1.git init
    2.git add -A (提交本地所有文件)
    3.git commit -m “提交說明”
    4.git remote add origin git倉庫地址
    5.git push origin 遠(yuǎn)程分支或者主分支
    如果已經(jīng)關(guān)聯(lián)過,只需要直接2,3,5步驟
    如果你是sourceTree管理,提交代碼即可(podspec也要放在跟工程文件,提交到倉庫里面去)

5.給項(xiàng)目打上tag
git tag 1.0.0
注意:tag的值要跟podspec文件中的s.version對應(yīng)
git push - -tag

6.注冊trunk
注冊郵箱和用戶名:pod trunk register XXX@XXX.com '名字' --verbose
查看注冊信息:pod trunk me

7.在本地建立私有庫
在這之前,我們可以在驗(yàn)證一下podspec文件是否可以驗(yàn)證通過
pod spec lint 庫名.podspec --allow-warnings --use-libraries --verbose
pod repo add 私有庫文件夾名字 git倉庫地址

8.將私有庫提交到pods
pod repo push 私有庫文件夾名字 Text.podspec --allow-warnings --use-libraries --verbose
pod trunk push Text.podspec --allow-warnings --use-libraries --verbose

9.上傳成功之后,pod setup更新。然后pod search 搜索庫文件。可以搜索到就成功了。

問題

1.搜索庫文件報(bào)錯(cuò),An unexpected version directory Assets was encountered for the /Users/yanyan/.cocoapods/repos/ Pod in the YYLib repository.
解決辦法,進(jìn)入文件指定路徑,將對應(yīng)的文件夾刪除即可。

2. [!] Unable to find a pod with name, author, summary, or descriptionmatching iOS\-AlipaySDK
rm ~/Library/Caches/CocoaPods/search_index.json
解決辦法,替換pod搜索文件
~/Library/Caches/CocoaPods/search_index.json

使用私有庫

添加私有 repo 到 podfile,同時(shí)還需要添加原 pod master 倉庫,如下:source https://git.xxx.com/spec.git
source 'https://github.com/CocoaPods/Specs.git
將要使用的組件添加至 Podfile, pod install即可

如果私有庫沒有更新版本,直接刪除tag值,然后合并代碼,再重新打上tag的版本。想要獲取到最新的版本的代碼。請先更新本地repo庫為最新。然后刪除cocoapods本地存在的記錄即可。
命令如下:
pod repo update 私有庫名字。
CocoaPods 的緩存(~/Library/Caches/CocoaPods/Pods/Release 目錄),刪除此目錄下你的 私有庫的文件夾。

結(jié)尾

文章為自己創(chuàng)建私有庫使用的步驟,如果你有任何問題,或者以上描述有問題,都可以告知我,我會更正問題。期待一起討論,共同進(jìn)步。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,837評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,196評論 3 414
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,688評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,654評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,456評論 6 406
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,955評論 1 321
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,044評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,195評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,725評論 1 333
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,608評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,802評論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,318評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,048評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,422評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,673評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,424評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,762評論 2 372

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