玩轉(zhuǎn) CocoaPods -- 以 CocoaPods 1.0 為例

原文地址

CocoaPods 1.0 + 適配

CocoaPods 1.0 發(fā)布4個多月了匾二。之前的寫的筆記過時了,抽空更新一波。同時解決一下圖片不能看的問題。鑒于寫完之前的總結(jié)之后很多人問我怎么弄私有 Pod 诚亚,今天會寫一下闸准。

目錄


<a id="CocoaPods10"></a>

CocoaPods 1.0 安裝及適配

  • 如何安裝敏释?命令行中輸入 sudo gem install cocoapods

遇到 Operation not permitted - /usr/bin/pod 可以參照這里

  • 有何變化义屏?[沒用過舊版的可以忽略]
    • 必須指明 target
    • :exclusive => truelink_with 被去掉了
    • 使用本地的 pod 只能使用 :path
    • pod install 不再更新本地 repo
    • pod install --repo-update 更新本地 repo 在安裝 pods
    • ...

<a id="CocoaPodsPos"></a>

利用 CocoaPods 發(fā)布自己的三方庫

  • 將自己的三方庫集成 CocoaPods 只需要三步
      1. 初始化項目
      1. 創(chuàng)建和編寫 podspec
      1. 將 podspec 上傳到 CocoaPods 的 repo 上

1.初始化項目

  • 如何初始化可以看這里
  • 原理上 Cocoapods 支持任意源代碼管理(例如 git svn)的開源倉庫澳叉。只要用戶可以根據(jù) url 下載到項目的網(wǎng)址都可以。所以不局限于GitHub。但是今天我們以 GitHub 為例泌枪。
  • 項目初始化結(jié)束之后,需要給項目打 tag 以便告訴 Cocoapods 自己項目的最新版遏考。每發(fā)一版需要一個 tag
// push to remote
git add .
git commit -m "初始化項目"
git push

//add tag 
git tag -m "2rd release" 0.2.0
git push --tags

2.創(chuàng)建和編寫 podspec [ 最重要的一步 ]

  • 你可以創(chuàng)建一個名字叫做 XXX.podspec 空文件。
  • 也可以通過 pod spec create DWCategory git@github.com:Damonvvong/DWCategory.git 創(chuàng)建一個有備注的 podspec
  • 編寫 podspec 文件:
Pod::Spec.new do |s|

  s.name         = "DWCategory"                           # 名稱
  s.version      = "0.2.0"                                # 版本號,git 的 tag
  s.summary      = "一個簡單的分類用于測試 Cocoapods 1.0 +"

  s.description  = <<-DESC
                    - 測試 pod
                    - Cocoapods 1.0
                    - description 需要比 summary 長
                   DESC

  s.homepage     = "https://github.com/Damonvvong"
  s.license      = { :type => "MIT", :file => "LICENSE" }                    # 開源協(xié)議

  s.author       = { "Damonwong" => "coderonevv@gmail.com" }
  s.platform     = :ios, "8.0"                                               # 支持的平臺及版本
  s.source       = { :git => "https://github.com/Damonvvong/DWCategory.git", :tag => "#{s.version}" }
  # 項目地址作為開源項目,這里不能使用 ssh 
  s.source_files  = "DWCategory", "DWCategory/**/*.{h,m}"                    # 模塊文件路徑配置
  s.exclude_files = "Classes/Exclude"
  s.module_name   = 'DWCategory'                                             # 模塊名稱
end
  • 編寫完運行 pod lib lint 刊驴,出現(xiàn)如下圖 運行無誤

3. 將 podspec 上傳到 CocoaPods 的 repo 上

利用Trunk把自己的 DWCategory.podspec 文件上傳給 Cocoapods

1.注冊

pod trunk register coderonevv@gmail.com 'Damonwong' --verbose
  • coderonevv@gmail.com:自己的郵箱
  • Damonwong:用戶名(最好和.podspec 文件 中一樣)

2.檢查是否注冊成功

  • 登錄郵箱姿搜,確認(rèn)注冊

  • 檢查注冊情況:pod trunk me(看到類似下面,就是成功了)

pod trunk me
  - Name:     Damonwong
  - Email:    coderonevv@gmail.com

3.上傳DWCategory.podspec 到 Cocoapods/repo

  • 進入 文件所在文件夾
    cd /Users/damon/Desktop/DWCategory 
  • 上傳文件
pod trunk push /Users/damon/Desktop/DWCategory 

4.上傳完成捆憎,查找一下

pod search DWCategory

Done! 現(xiàn)在可以用 pod 'DWCategory' 來導(dǎo)入了


<a id="CocoaPodsPPos"></a>

CocoaPods 1.0 私有 Pods

  • 創(chuàng)建一個私有 pods 需要三個東西
      1. 私有的代碼管理倉庫
      1. 私有的 repo
      1. 私有 pod

1. 私有的代碼管理倉庫

  • 搭建在自己服務(wù)器的源代碼管理倉庫舅柜,例如 GitLab

2. 私有的 repo 【非必要】

  • repo 是什么?

    • repo 其實就是一個索引表躲惰。一個管理 .podspec 文件夾的索引致份。下圖是從這里 下載的 master 的目錄結(jié)構(gòu)(在下系統(tǒng)的~/.cocoapods/repos/master)。Specs 下存放了Cocoapods 幾乎所有開源的項目索引础拨。例如 AFNetworking 下有每一個版本(tag)對應(yīng)的 podspec氮块。
  • 所以,我們也要自己先搞一個私有的 repo

    • 1.在私有源代碼管理上創(chuàng)建一個空倉庫诡宗。
    • 2.到本地 在命令行中輸入 pod repo add REPO_NAME SOURCE_URL 期中REPO_NAME 是你的 repo 名字 例如 DWRepo , SOURCE_URL 是你的 空倉庫的 地址滔蝉。【這一步在本地的~/.cocoapods/repo 下初始化了一個 DWRepo,同時 git push 到了 SOURCE_URL】

3. 私有 pod

  • 這一步這里步驟類似塔沃。只需要把代碼倉庫改為私有的就行蝠引。

  • 創(chuàng)建和編寫 podspec。

    • 這一步大致與 **CocoaPods 1.0 安裝及適配 ** 的一致。只需要把 s.source = { :git => "改成私有地址" }即可立肘。記得用 pod lib lint 是否有問題
  • 創(chuàng)建完 podspec 不再是用 trunk 上傳自己的 podspec 了边坤。你需要用 pod repo push DWRepo DWCategory.podspec 將.podspec 上傳到自己的 repo 中×履辏【這一步茧痒,先將 DWCategory.podspec 拷貝到了 自己的 repo 中,再將 repo 同步到服務(wù)器上】

ok融蹂!Done旺订。


關(guān)于私有 pod

  • 你可以按照上面步驟搭建一個 類似 Cocoapods 的 方案
  • 其實你可以省略 repo 直接在 pod 的時候添加 code 源 例如 :
    platform :ios, "8.0"

source 'https://github.com/CocoaPods/Specs.git'

target 'CocoaPods2' do
    pod 'DWCategory', :git => '這里寫上私有庫的源'
end

  • 當(dāng)然上面的 :git 可以改為 :path 來導(dǎo)入本地的 庫

<a id="GitHubInit"></a>1.在 GitHub 初始化一個分類倉庫(DWCategory)

Category.png

2.clone 到本地,配置文件超燃,再上傳

  • 把 GitHub 上的項目克隆到本地区拳。(打開終端,cd 到桌面)
git clone git@github.com:Damonvvong/DWCategory.git

Category_Clone

這里是利用 SSH 方式 clone,配置 SSH教程傳送門

  • 把自己的分類放入桌面的DWCategory文件夾中,如下意乓。
Dir

本文編輯于 2016年9月20日

更多

工作之余樱调,寫了點筆記,如果需要可以在我的 GitHub 看届良。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末笆凌,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子士葫,更是在濱河造成了極大的恐慌乞而,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件慢显,死亡現(xiàn)場離奇詭異爪模,居然都是意外死亡,警方通過查閱死者的電腦和手機荚藻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門屋灌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人应狱,你說我怎么就攤上這事共郭。” “怎么了侦香?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長纽疟。 經(jīng)常有香客問我罐韩,道長,這世上最難降的妖魔是什么污朽? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任散吵,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘矾睦。我一直安慰自己晦款,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布枚冗。 她就那樣靜靜地躺著缓溅,像睡著了一般。 火紅的嫁衣襯著肌膚如雪赁温。 梳的紋絲不亂的頭發(fā)上坛怪,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機與錄音股囊,去河邊找鬼袜匿。 笑死,一個胖子當(dāng)著我的面吹牛稚疹,可吹牛的內(nèi)容都是我干的居灯。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼内狗,長吁一口氣:“原來是場噩夢啊……” “哼怪嫌!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起其屏,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤喇勋,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后偎行,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體川背,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年蛤袒,在試婚紗的時候發(fā)現(xiàn)自己被綠了熄云。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡妙真,死狀恐怖缴允,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情珍德,我是刑警寧澤练般,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站锈候,受9級特大地震影響薄料,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜泵琳,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一摄职、第九天 我趴在偏房一處隱蔽的房頂上張望誊役。 院中可真熱鬧,春花似錦谷市、人聲如沸蛔垢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鹏漆。三九已至,卻和暖如春及皂,著一層夾襖步出監(jiān)牢的瞬間甫男,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工验烧, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留板驳,地道東北人。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓碍拆,卻偏偏與公主長得像若治,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子感混,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,901評論 2 345

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