CocoaPod 制作私有庫(Private Pods)

前言

官網(wǎng)關(guān)于這個知識點已有詳細的介紹同窘,但是對我來說:1.知識點比較凌亂 2.英文描述锈至,很多時候不能很好理解其含義搞隐。故驹愚,參照官網(wǎng)及其他 blog 親自實踐,做個總結(jié)劣纲。

幾個概念

我這里用的版本控制是 GitLab 和 GitHub 類似逢捺。

  • Podfile:描述了工程中 Taget 的依賴●荆客戶端使用這個文件使用 Pod 庫劫瞳。
  • Pod library:具體的庫,即通常所說的第三方庫绷柒。
  • Podspec:一個描述文件志于,描述 Pod library。
  • Spec Repo:存放 Podspec 的倉庫废睦。 Repository 注意和 library 區(qū)別伺绽,剛始看官方英語文檔時,沒能很好區(qū)分這兩個詞,給后面的理解造成了不是困難憔恳。

需要的組件

  • Podfile(必須)
  • Pod library(必須)瓤荔,一堆文件的集合净蚤,不一定是 xcode 工程钥组,可以是一個文件,或者文件夾等今瀑。一般以 project(github 叫 Repository) 形式放到 GitLab 上程梦,是一個 repo。
  • Podspec(必須)
  • 這三個文件是必須的 調(diào)用關(guān)系:Podfile 引用 Podspec橘荠, Podspec 引用 Pod library屿附。
  • Spec Repo 一般是一個 git 庫 只存放 Podspec

現(xiàn)在來實現(xiàn)這些組件。

制作 Pod library 兩種方法

  1. 直接在 GitLab 新建一個 project,添加相關(guān)文件即可哥童。
  2. 用 CocoaPod 提供的命令 pod lib create MyLib1 一般情況下挺份,第三庫都需要demo和測試來驗證。cocopods 的這條命令幫我們完成了這些繁瑣的工作贮懈。 并且?guī)臀覀冎谱髁藢?yīng)的 podspec 參考官網(wǎng)
  • 測試時匀泊,如果是 swift 的庫 注意給類和方法根據(jù)需要添加 publice 關(guān)鍵字
  • 這個命令會 git pod-template 到本地,根據(jù)需要刪除 git 相關(guān)的目錄和文件朵你。
  • 一般情況要將 Pod library 上傳到 自己的 GitLab各聘。

制作 Podspec 三種方法

  1. 上面的方法2已經(jīng)產(chǎn)生了podspec
  2. 用 CocoaPod 提供的命令 pod spec create Mylib1.podspec 參考官網(wǎng)
  3. 手動創(chuàng)建一個這樣的文件
    注意:
  • soure URL 對應(yīng)的地址是 pod library的地址。 不是 Spec Repo 的地址
  • tag 的版本號要對應(yīng)抡医。當然也可以不使用 tag

官方推薦的制作方法

官方推薦的方法步驟最多躲因,但標準規(guī)范。

  1. 創(chuàng)建 Spec Repo忌傻,一般就是在 GitLab 上新建一個 project大脉,github 叫 Repository。并添加 Mylib1.podspec 等spec文件
  2. Add your Private Repo to your CocoaPods installation
pod repo add REPO_NAME SOURCE_URL
  1. Add your Podspec to your repo
pod repo push REPO_NAME SPEC_NAME.podspec

注意:

  • SOURCE_URL 是 Spec Repo 的地址
  • 如果 spec 文件中使用了tag 確保對應(yīng)的 Pod library 打了對應(yīng)的 tag水孩。
  • Spec Repo 的目錄結(jié)構(gòu) 一定注意是這樣的
.
├── Specs

    └── [SPEC_NAME]

        └── [VERSION]

            └── [SPEC_NAME].podspec

這樣 私有庫就做好了镰矿,但是在使用時,請注意添加

source 'URL_TO_REPOSITORY'
  • URL_TO_REPOSITORY 是 Spec Repo 的地址

根據(jù)文檔總結(jié)的其他方法

  1. 官方推薦的制作方法中的步驟2和步驟3可以不實現(xiàn)荷愕。只要在Podfile中加入 source 'URL_TO_REPOSITORY' pod install后會自動實現(xiàn)衡怀。可以使用Pod repo list 查看前后變化
  2. 直接在 Podfile 中使用 參考
    pod 'Alamofire', :git => 'https://github.com/Alamofire/Alamofire.git'
    這種格式
    注意:
  • podspec 文件必須在 Pod library 的根目錄安疗。
  1. 也可以這樣參考官網(wǎng)
pod 'JSONKit', :podspec => 'https://example.com/JSONKit.podspec'

看 Cocoapod 官網(wǎng)的方法

網(wǎng)站右上角分了4部分抛杨,guids 是關(guān)注的重點,guids 頁面分了四部分荐类,根據(jù)需要查找對應(yīng)部分怖现,然后細讀。

總結(jié)

細讀文檔,動手實踐發(fā)現(xiàn)有很多實現(xiàn)方法

方法 優(yōu)點
pod 'XXX', :git=>'' 便于直接使用
pod 'XXX'屈嗤,:podspec=>'.podspec' 原生
pod 'XXX'潘拨,:podspec=>'.json' 便于理解
specs 文件 便于詳細配置工程
specs放在本地 便于調(diào)試
創(chuàng)建 Specs Reopsitroy 便于集中管理

命令總結(jié)

  • pod lib create MyLib1
  • pod spec create Mylib1.podspec
  • Pod repo list
  • pod repo add REPO_NAME SOURCE_URL
  • pod repo push REPO_NAME SPEC_NAME.podspec
  • pod ipc spec JSONKit.podspec > JSONKit.podspec.json
  • pod 'XXX',:podspec=>''
  • pod 'XXX'饶号,git=>''
  • pod lib lint

實踐過程

也許會遇到的問題

  • dyld: lazy symbol binding failed: Symbol not found:解決方法

實踐環(huán)境

  • xcode Version 10.0 (10A255)
  • pod --version 1.5.3
  • MacOS High Sierra 10.13.6(17G65)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末铁追,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子茫船,更是在濱河造成了極大的恐慌琅束,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,548評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件算谈,死亡現(xiàn)場離奇詭異涩禀,居然都是意外死亡,警方通過查閱死者的電腦和手機然眼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評論 3 399
  • 文/潘曉璐 我一進店門艾船,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人高每,你說我怎么就攤上這事屿岂。” “怎么了觉义?”我有些...
    開封第一講書人閱讀 167,990評論 0 360
  • 文/不壞的土叔 我叫張陵雁社,是天一觀的道長。 經(jīng)常有香客問我晒骇,道長霉撵,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,618評論 1 296
  • 正文 為了忘掉前任洪囤,我火速辦了婚禮徒坡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘瘤缩。我一直安慰自己喇完,他們只是感情好,可當我...
    茶點故事閱讀 68,618評論 6 397
  • 文/花漫 我一把揭開白布剥啤。 她就那樣靜靜地躺著锦溪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪府怯。 梳的紋絲不亂的頭發(fā)上刻诊,一...
    開封第一講書人閱讀 52,246評論 1 308
  • 那天,我揣著相機與錄音牺丙,去河邊找鬼则涯。 笑死复局,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的粟判。 我是一名探鬼主播亿昏,決...
    沈念sama閱讀 40,819評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼档礁!你這毒婦竟也來了角钩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,725評論 0 276
  • 序言:老撾萬榮一對情侶失蹤事秀,失蹤者是張志新(化名)和其女友劉穎彤断,沒想到半個月后野舶,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體易迹,經(jīng)...
    沈念sama閱讀 46,268評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,356評論 3 340
  • 正文 我和宋清朗相戀三年平道,在試婚紗的時候發(fā)現(xiàn)自己被綠了睹欲。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,488評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡一屋,死狀恐怖窘疮,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情冀墨,我是刑警寧澤闸衫,帶...
    沈念sama閱讀 36,181評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站诽嘉,受9級特大地震影響蔚出,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜虫腋,卻給世界環(huán)境...
    茶點故事閱讀 41,862評論 3 333
  • 文/蒙蒙 一骄酗、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧悦冀,春花似錦趋翻、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至历等,卻和暖如春讨惩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背募闲。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評論 1 272
  • 我被黑心中介騙來泰國打工步脓, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 48,897評論 3 376
  • 正文 我出身青樓靴患,卻偏偏與公主長得像仍侥,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子鸳君,可洞房花燭夜當晚...
    茶點故事閱讀 45,500評論 2 359

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