基礎(chǔ)-簡(jiǎn)介

1. CocoaPods簡(jiǎn)介

CocoaPods是一個(gè)用來(lái)幫助我們管理iOS第三方依賴庫(kù)的工具。它可以解決庫(kù)與庫(kù)之間的依賴關(guān)系,目的是讓我們能自動(dòng)化的、集中的、直觀的管理第三方開源庫(kù)。

CocoaPods的安裝和使用

CocoaPods是用Ruby實(shí)現(xiàn)的,要想使用它首先需要有Ruby的環(huán)境。幸運(yùn)的是OS X系統(tǒng)默認(rèn)的已經(jīng)可以運(yùn)行Ruby了,因此我們只需要執(zhí)行以下命令:

$ sudo gem install cocoapods
$ pod setup 

① 執(zhí)行完install命令半天沒反應(yīng)

原因是Ruby的默認(rèn)源使用的是cocoapods.org,國(guó)內(nèi)訪問(wèn)這個(gè)網(wǎng)址有時(shí)候會(huì)有問(wèn)題,請(qǐng)?zhí)鎿Q成Ruby China的源,命令如下:

$ gem sources --remove https://rubygems.org/ 
$ gem sources -a https://gems.ruby-china.org/ 

要想驗(yàn)證是否替換成功了,可以執(zhí)行:

$ gem sources -l 

正常的輸出是:

*** CURRENT SOURCES *** 
https://gems.ruby-china.org/

② gem版本過(guò)老

gem是管理Ruby庫(kù)和程序的標(biāo)準(zhǔn)包,如果它的版本過(guò)低也可能導(dǎo)致安裝失敗,解決方案自然是升級(jí)gem,執(zhí)行下述命令即可:

$ sudo gem update --system 

③ pod setup等待時(shí)間太久

pod setup在執(zhí)行時(shí),CocoaPods會(huì)將托管在https://github.com/CocoaPods/Specs上面的所有項(xiàng)目的Podspec文件更新到~/.cocoapods/目錄下,這個(gè)文件很大,所有第一次更新會(huì)非常慢。方法是直接手動(dòng)下載到本地,操作如下:

$ git clone https://git.coding.net/CocoaPods/Specs.git ~/.cocoapods/repos/master --progress

使用

<span id = "jump"></span>

創(chuàng)建Podfile文件

在Xcode項(xiàng)目的根目錄下執(zhí)行命令創(chuàng)建Podfile文件,操作如下:

$ pod init

Podfile文件的格式如下:

source 'https://github.com/CocoaPods/Specs'  #源的下載地址

platform :ios, '7.0'                         #支持的ios系統(tǒng)最低版本

pod 'JSONKit', '~> 1.4'                      #第三方庫(kù)以及版本號(hào)

target 'XBPodSDK' do                         #項(xiàng)目的target
    # use_frameworks!
end

上面的格式比較簡(jiǎn)單,查看更多詳情,請(qǐng)?zhí)D(zhuǎn)到鏈接Podfile介紹

<font color=red>注意:Podfile文件中加入“use_frameworks!”表示打包成framework動(dòng)態(tài)庫(kù)(ios8之前是靜態(tài)庫(kù)),如果沒有這個(gè)配置,則最終打包成.a靜態(tài)庫(kù)</font>

安裝依賴庫(kù)

Podfile文件創(chuàng)建完成后,在當(dāng)前的工程目錄下,執(zhí)行命令來(lái)安裝依賴庫(kù):

$ pod install

<font color=red>注意:使用CocoaPods生成的.xcworkspace文件來(lái)打開工程</font>

更新依賴庫(kù)

當(dāng)依賴的第三方庫(kù)升級(jí)新版本后,如果Podfile文件指定庫(kù)為最新版本或者不指定版本,都會(huì)更新到最新版。

① 全部更新

如果要使Podfile文件中所有的庫(kù)都更新到指定版本,需要執(zhí)行命令如下:

$ pod update

<font color=red>注意:用“~>”指定的版本是一個(gè)范圍,并不是特定版本,所有會(huì)產(chǎn)生誤解(自己指定了版本,為什么pod update會(huì)更新到更高的版本)。為了防止這種情況,可以使用“<=”來(lái)指定版本。</font>

直接執(zhí)行pod update命令,有時(shí)會(huì)比較慢,這是因?yàn)閜od會(huì)更新本地的版本庫(kù),添加參數(shù)可以取消更新版本庫(kù),如下:

$ pod update --no-repo-update

<font color=red>注意:這種情況需要保證本地版本庫(kù)最新。</font>

② 更新指定庫(kù)

如果想只更新某個(gè)依賴庫(kù),可以在pod update后面加上庫(kù)名,如下:

$ pod update [LIB_NAME] #庫(kù)的名稱

查找第三方庫(kù)

如果不知道cocoaPods管理的庫(kù)中,是否有想要的庫(kù),可以通過(guò)<font color=red>pod search</font>命令進(jìn)行查找,以下是用<font color=red>pod search json</font>查找到的所有可用的庫(kù):

-> JSON (5.0.0)
   JSON made so simple, it hurts
   pod 'JSON', '~> 5.0.0'
   - Homepage: https://github.com/3lvis/JSON
   - Source:   https://github.com/3lvis/JSON.git
   - Versions: 5.0.0, 5.0.0-beta1, 4.0.2, 4.0.1, 4.0.0, 3.1.0, 3.0.0, 2.1.1, 2.1.0, 2.0.0 [master repo]

-> json-parser-swift (0.2.0)
   JSON parser & tokenizer in pure Swift
   pod 'json-parser-swift', '~> 0.2.0'
   - Homepage: https://github.com/webconnex/json-parser-swift
   - Source:   https://github.com/webconnex/json-parser-swift.git
   - Versions: 0.2.0, 0.1.1, 0.1.0, 0.0.2, 0.0.1 [master repo]
   
//... 以下省略若干行

Podfile.lock作用

在開始使用CocoaPods,執(zhí)行完pod install之后,會(huì)生成一個(gè)Podfile.lock文件,每次執(zhí)行pod update也會(huì)更新Podfile.lock文件。

作用

Podfile.lock文件最大得用處在于多人開發(fā),保證團(tuán)隊(duì)中每個(gè)人使用的依賴庫(kù)的版本一致

CocoaPods管理私有庫(kù)

創(chuàng)建私有 Spec Repo

Spec Repo介紹

Spec Repo是所有的Pods的一個(gè)索引,就是一個(gè)容器,所有公開的Pods都在這個(gè)里面,它實(shí)際是一個(gè)遠(yuǎn)端的Git倉(cāng)庫(kù),當(dāng)你使用了Cocoapods后它會(huì)被clone到本地的~/.cocoapods/repos目錄下,可以進(jìn)入到這個(gè)目錄看到master文件夾就是這個(gè)官方的Spec Repo了。這個(gè)master目錄的結(jié)構(gòu)是這個(gè)樣子的

.
├── Specs
    └── [SPEC_NAME]
        └── [VERSION]
            └── [SPEC_NAME].podspec
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 項(xiàng)目組件化、平臺(tái)化是技術(shù)公司的共同目標(biāo),越來(lái)越多的技術(shù)公司推崇使用pod管理第三方庫(kù)以及私有組件,一方面使項(xiàng)目架構(gòu)...
    swu_luo閱讀 22,847評(píng)論 0 39
  • CocoaPods 是什么? CocoaPods 是一個(gè)負(fù)責(zé)管理 iOS 項(xiàng)目中第三方開源庫(kù)的工具。CocoaPo...
    朝洋閱讀 25,990評(píng)論 3 50
  • Ruby 安裝 要安裝cocospods 首先需要安裝ruby,可以先安裝xcode,再安裝macport ,最后...
    山天大畜閱讀 2,118評(píng)論 0 1
  • 一. CocoaPods的介紹 什么是CocoaPods?CocoaPods是一個(gè)負(fù)責(zé)管理iOS項(xiàng)目中第三方開源庫(kù)...
    輝712閱讀 4,111評(píng)論 0 7
  • 我問(wèn)了身邊的很多人,“人為什么要活著,生命的意義是什么?”有人告訴我是欲望;有人認(rèn)為是恐懼,對(duì)死亡的恐懼讓人活著;...
    拂景閱讀 5,467評(píng)論 1 4

友情鏈接更多精彩內(nèi)容