CocoaPod 制作私有庫(Private Pods)

前言

官網關于這個知識點已有詳細的介紹,但是對我來說:1.知識點比較凌亂 2.英文描述,很多時候不能很好理解其含義。故,參照官網及其他 blog 親自實踐,做個總結。

幾個概念

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

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

需要的組件

  • Podfile(必須)
  • Pod library(必須),一堆文件的集合,不一定是 xcode 工程,可以是一個文件,或者文件夾等。一般以 project(github 叫 Repository) 形式放到 GitLab 上,是一個 repo。
  • Podspec(必須)
  • 這三個文件是必須的 調用關系:Podfile 引用 Podspec, Podspec 引用 Pod library。
  • Spec Repo 一般是一個 git 庫 只存放 Podspec

現在來實現這些組件。

制作 Pod library 兩種方法

  1. 直接在 GitLab 新建一個 project,添加相關文件即可。
  2. 用 CocoaPod 提供的命令 pod lib create MyLib1 一般情況下,第三庫都需要demo和測試來驗證。cocopods 的這條命令幫我們完成了這些繁瑣的工作。 并且幫我們制作了對應的 podspec 參考官網
  • 測試時,如果是 swift 的庫 注意給類和方法根據需要添加 publice 關鍵字
  • 這個命令會 git pod-template 到本地,根據需要刪除 git 相關的目錄和文件。
  • 一般情況要將 Pod library 上傳到 自己的 GitLab。

制作 Podspec 三種方法

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

官方推薦的制作方法

官方推薦的方法步驟最多,但標準規范。

  1. 創建 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 確保對應的 Pod library 打了對應的 tag。
  • Spec Repo 的目錄結構 一定注意是這樣的
.
├── Specs

    └── [SPEC_NAME]

        └── [VERSION]

            └── [SPEC_NAME].podspec

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

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

根據文檔總結的其他方法

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

看 Cocoapod 官網的方法

網站右上角分了4部分,guids 是關注的重點,guids 頁面分了四部分,根據需要查找對應部分,然后細讀。

總結

細讀文檔,動手實踐發現有很多實現方法

方法 優點
pod 'XXX', :git=>'' 便于直接使用
pod 'XXX',:podspec=>'.podspec' 原生
pod 'XXX',:podspec=>'.json' 便于理解
specs 文件 便于詳細配置工程
specs放在本地 便于調試
創建 Specs Reopsitroy 便于集中管理

命令總結

  • 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:解決方法

實踐環境

  • xcode Version 10.0 (10A255)
  • pod --version 1.5.3
  • MacOS High Sierra 10.13.6(17G65)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,117評論 6 537
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,860評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,128評論 0 381
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,291評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,025評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,421評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,477評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,642評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,177評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,970評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,157評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,717評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,410評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,821評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,053評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,896評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,157評論 2 375

推薦閱讀更多精彩內容