【軟件】Cocoapods安裝

一、CocoaPods簡(jiǎn)介

CocoaPods是專門為iOS工程提供第三方依賴庫(kù)的管理工具,通過CocoaPods,我們可以更方便地管理每個(gè)第三方庫(kù)的版本,而且不需要我們做太多的配置,就可以直觀、集中和自動(dòng)化地管理我們項(xiàng)目的第三方庫(kù)。

CocoaPods將所有依賴的庫(kù)都放在一個(gè)名為Pods的項(xiàng)目下,然后讓主項(xiàng)目依賴Pods項(xiàng)目。然后,我們編碼工作都從主項(xiàng)目轉(zhuǎn)移到Pods項(xiàng)目。Pods項(xiàng)目最終會(huì)編譯為一個(gè)libPod-項(xiàng)目名.a靜態(tài)庫(kù),主項(xiàng)目依賴于這個(gè)靜態(tài)庫(kù)。

對(duì)于資源文件,CocoaPods 提供了一個(gè)名為 Pods-resources.sh 的 bash 腳本,該腳本在每次項(xiàng)目編譯的時(shí)候都會(huì)執(zhí)行,將第三方庫(kù)的各種資源文件復(fù)制到目標(biāo)目錄中。

CocoaPods 通過一個(gè)名為 Pods.xcconfig 的文件來在編譯時(shí)設(shè)置所有的依賴和參數(shù)。

CocoaPods是用 Ruby 寫的,并由若干個(gè) Ruby 包 (gems) 構(gòu)成的。在解析整合過程中,最重要的幾個(gè) gems 分別是: CocoaPods/CocoaPods, CocoaPods/Core, 和 CocoaPods/Xcodeproj

二、CocoaPods的核心組件

  • CocoaPods/CocoaPod
    這是一個(gè)面向用戶的組件,每當(dāng)執(zhí)行一個(gè) pod 命令時(shí),這個(gè)組件都將被激活。該組件包括了所有使用 CocoaPods 涉及到的功能,并且還能通過調(diào)用所有其它的 gems 來執(zhí)行任務(wù)。

  • CocoaPods/Core
    Core 組件提供支持與 CocoaPods 相關(guān)文件的處理,文件主要是 Podfilepodspecs

  • Podfile
    Podfile 是一個(gè)文件,用于定義項(xiàng)目所需要使用的第三方庫(kù)。該文件支持高度定制,你可以根據(jù)個(gè)人喜好對(duì)其做出定制。更多相關(guān)信息,請(qǐng)查閱 Podfile 指南。

  • Podspec
    .podspec 也是一個(gè)文件,該文件描述了一個(gè)庫(kù)是怎樣被添加到工程中的。它支持的功能有:列出源文件、framework、編譯選項(xiàng)和某個(gè)庫(kù)所需要的依賴等。

  • CocoaPods/Xcodeproj
    這個(gè) gem 組件負(fù)責(zé)所有工程文件的整合。它能夠創(chuàng)建并修改 .xcodeproj.xcworkspace 文件。它也可以作為單獨(dú)的一個(gè) gem 包使用。如果你想要寫一個(gè)腳本來方便地修改工程文件,那么可以使用這個(gè) gem

三、CocoaPods的安裝和使用

1、安裝rvm

檢查Mac是否安裝了rvm,打開終端,輸入指令:

rvm -v

  • 如果不存在,則會(huì)出現(xiàn)下面的情況:
Last login: Thu Sep 19 08:32:35 on console
bogon:~ wangruifang$ rvm -v
-bash: rvm: command not found

  • 如果存在,則會(huì)打印rvm的版本信息:
bogon:~ wangruifang$ rvm -v
rvm 1.29.3 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]

如果不存在,先要安裝一下,依次輸入以下命令:

curl -L get.rvm.io | bash -s stable

上面的安裝不了用下面的命令
\curl -sSL https://get.rvm.io | bash -s stable

source ~/.bashrc

source ~/.bash_profile

升級(jí)rvm到最新的穩(wěn)定版本命令:

rvm get stable

2、安裝ruby
(1)查詢r(jià)uby所有可安裝的版本信息:
rvm list known

結(jié)果如下:

[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-head] # security released on head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p330]
[ruby-]1.9.3[-p551]
[ruby-]2.0.0[-p648]
[ruby-]2.1[.10]
[ruby-]2.2[.10]
[ruby-]2.3[.8]
[ruby-]2.4[.6]
[ruby-]2.5[.5]
[ruby-]2.6[.3]
[ruby-]2.7[.0-preview1]
ruby-head
···

(2)選擇一個(gè)ruby版本進(jìn)行安裝(2.6.3為最新正式版版本,2.7.0為測(cè)試版)
rvm install 2.6.3
// 注意:安裝過程中需要兩次按下 Enter 鍵, 第二次按下后需要輸入電腦訪問密碼(不可見,只管輸入就行);
// 如果你電腦沒有安裝Xcode和Command Line Tools for Xcode以及Homebrew 會(huì)自動(dòng)下載安裝,建議提前安裝這三者.

(3)設(shè)置為默認(rèn)版本
rvm use 2.6.3 --default

3、檢查更新ruby版本環(huán)境

cocoapods是用gem ruby實(shí)現(xiàn)的,想要使用它首先需要有gem ruby的環(huán)境。且Mac的OS X系統(tǒng)默認(rèn)已經(jīng)可以運(yùn)行ruby

檢查 gem ruby 版本號(hào):

sudo gem -v

更新 gem ruby 版本號(hào):

sudo gem update --system

4、檢查更新ruby源
(1)檢查ruby源
bogon:~ wangruifang$ gem sources -l 
*** CURRENT SOURCES ***

https://rubygems.org/

(2)替換國(guó)內(nèi)鏡像源

之所以要添加國(guó)內(nèi)的 ruby-china源,是因?yàn)?code>taobao源已經(jīng)停止維護(hù)了,所以此處替換的是ruby-china源,且盡量確保只有一個(gè)。

//移除原有鏡像源:
gem sources --remove https://rubygems.org/
//添加國(guó)內(nèi)鏡像源
gem sources --add https://gems.ruby-china.com

5、安裝CocoaPods
sudo gem install cocoapods

OS X EL Capitan 或 macOS High Sierra System 后改為:

sudo gem install -n /usr/local/bin cocoapods

如果以上安裝cocoapads報(bào)錯(cuò)
ERROR: While executing gem ... (Gem::FilePermissionError)
更換為下面安裝方式

gem install cocoapods --user-install

如果安裝了多個(gè)Xcode使用下面的命令選擇(一般需要選擇最近的Xcode版本)

sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

設(shè)置pod:

pod setup

6、創(chuàng)建一個(gè)工程,并創(chuàng)建Podfile配置文件

先用 cd 進(jìn)入到工程中去,輸入指令vim podfile 創(chuàng)建 Podfile 文件,然后按 i 進(jìn)入到編輯模式來配置 Podfile 文件:

platform :ios, '9.0'
target “target名稱” do
pod 'AFNetworking', '~> 3.1.0'
end

Esc 退出編輯,按 Shift +冒號(hào),輸入 wq 退出文件編輯,然后下載 Podfile 文件內(nèi)的第三方,執(zhí)行命令:

pod install

7、pod命令
# 第一次使用安裝框架    //只用安裝一次,之后使用 添加刪除都用 pod update --no-repo-update 
$ pod install
# 安裝框架,不更新本地索引,速度快
$ pod install --no-repo-update 
# 今后升級(jí)、添加、刪除框架,或者框架不好用
$ pod update
# 更新框架,不更新本地索引,速度快
$ pod update --no-repo-update 
# 搜索框架
$ pod search XXX# 
幫助
$ pod --help

四、CocoaPods使用過程中遇到的問題

1、去除CocoaPods相關(guān)庫(kù)警告
  • 去除所有警告,在platform :ios, ‘x.0’ 的后面加入這句:
inhibit_all_warnings!

  • 對(duì)單個(gè)消除警告:
pod 'MJExtension','~>3.0.15.1',:inhibit_warnings => true

2、[!] Unable to find a pod with name, author, summary, or description matching xxx.
  • 解決辦法:
    刪除~/Library/Caches/CocoaPods目錄下的search_index.json文件
rm ~/Library/Caches/CocoaPods/search_index.json

3、[!] CDN: trunk URL couldn't be downloaded: https://raw.githubusercontent.com/CocoaPods/Specs/master/Specs/2/e/7/YTKNetworkExtension/0.1.0/YTKNetworkExtension.podspec.json, error: Failed to open TCP connection to raw.githubusercontent.com:443 (Connection refused - connect(2) for "raw.githubusercontent.com" port 443)
  • 問題原因:
    CocoaPods 1.8+將CDN切換為默認(rèn)的spec repo源,并附帶一些增強(qiáng)功能!CDN支持最初是在1.7版本中引入的,最終在1.7.2中完成。 它旨在大大加快初始設(shè)置和依賴性分析。

  • 解決辦法:

  1. podfile文件中添加source源:
    source 'https://github.com/CocoaPods/Specs.git
  2. 移除 trunk
pod repo remove trunk

五、CocoaPods卸載

1.卸載老版本cocopods

sudo gem uninstall cocoapods

2.查看本地安裝過的cocopods相關(guān)東西

 gem list --local | grep cocoapods

顯示如下:

cocoapods (1.0.1)

cocoapods-core (1.0.1)

cocoapods-deintegrate (1.0.1)

cocoapods-downloader (1.1.1)

cocoapods-plugins (1.0.0)

cocoapods-search (1.0.0)

cocoapods-stats (1.0.0)

cocoapods-trunk (1.0.0)

cocoapods-try (1.1.0)

然后使用命令逐個(gè)刪除

sudo gem uninstall cocoapods-core
sudo gem uninstall cocoapods-deintegrate

如果怕刪不干凈有殘留的話可以找到 .cocopods 文件(隱藏文件)刪掉就好

看不到該文件可以在終端輸操作

顯示隱藏文件 :
defaults write com.apple.finder AppleShowAllFiles -bool true
killall Finder

隱藏文件 :
defaults write com.apple.finder AppleShowAllFiles -bool false
killall Finder

刪除完之后接下來安裝RVM(如果以前安裝過的話需要找到.rvm然后刪掉 和.cocopods同理)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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