如何安裝Cocoapods
更改Cocoapods的源
因?yàn)樵趪鴥?nèi)資源被墻,所以需要切換源。目前使用的是ruby-china提供的鏡像。
gem sources --remove https://rubygems.org/
gem sources -a https://gems.ruby-china.com/
安裝完之后進(jìn)行查看源,檢查是否安裝正確
gem source -l
// *** CURRENT SOURCES ***
//https://gems.ruby-china.com/
安裝Cocoapods
sudo gem install -n /usr/local/bin cocoapods
配置pod
pod setup
安裝完成。
如何安裝指定版本的Cocoapods?
問題描述:
我們在使用Cocoapods的工程中進(jìn)行協(xié)同開發(fā)的時(shí)候,避免不了對podfile文件的更改,當(dāng)podfile文件發(fā)生改變的時(shí)候,對應(yīng)的pofile.lock也會(huì)發(fā)生更改。當(dāng)然團(tuán)隊(duì)在開發(fā)過程中也不希望每次拉一次代碼就執(zhí)行以下pod install 命令。正因?yàn)?code>podfile以及podfile.lock的改變,我們才需要去執(zhí)行pod install 或者pod update命令。podfile文件的更改,我們開發(fā)中可以控制,但是如果團(tuán)隊(duì)開發(fā)者Cocoapods版本不一致的時(shí)候。每更改一次都需要執(zhí)行pod install 或者pod update命令。如果成員都不對podfile文件做更改,并且Cocoapods版本都一致的時(shí)候,每次進(jìn)行代碼提交以及代碼拉取的時(shí)候都不需要執(zhí)行pod 更新的命令,那么,如果版本不一致怎么辦呢?統(tǒng)一版本唄。
解決方案:
Cocoapods版本的更新這里分兩種情況:
Case1:當(dāng)前安裝的Cocoapods版本比目標(biāo)版本低但是目標(biāo)版本又不是最新的,不能夠直接用更新命令(因?yàn)檫@樣會(huì)更新到最新版本)。這個(gè)時(shí)候我們要怎么做呢?
假設(shè)當(dāng)前Cocoapods版本為1.5.0,目標(biāo)版本為1.5.2。
這個(gè)時(shí)候需要執(zhí)行命令:
sudo gem install cocoapods --version 1.5.2
Case2:當(dāng)前安裝的Cocoapods版本比目標(biāo)版本高,這個(gè)時(shí)候我們不能按照Case1的做法,因?yàn)檫@個(gè)時(shí)候執(zhí)行的只是安裝版本1.5.2,版本1.5.3還在。cocoapods在使用的時(shí)候默認(rèn)的就是最高版本的cocoapods。那么,我們應(yīng)該怎么做呢?
- 首先是卸載高版本
Cocoapods。查找當(dāng)前環(huán)境安裝的cocoapods版本可以使用命令gem list。此時(shí)控制臺打印的可能為:
cocoapods (1.5.3,1.5.0, 1.3.1, 1.1.1)
cocoapods-core (1.5.3,1.5.0, 1.3.1, 1.1.1)
cocoapods-deintegrate (1.0.2, 1.0.1)
cocoapods-downloader (1.2.0, 1.1.3)
cocoapods-plugins (1.0.0)
cocoapods-search (1.0.0)
cocoapods-stats (1.0.0)
cocoapods-trunk (1.3.0, 1.2.0)
cocoapods-try (1.1.0)
1.5.2才是我們的目標(biāo)版本。1.5.3是最新的版本,我們需要把它卸載掉。命令如下:
sudo gem uninstall cocoapods -v 1.5.3
sudo gem uninstall cocoapods-core -v 1.5.3
注意:這里必須把cocoapods和cocoapods-core都卸載掉。
- 其次是安裝指定版本。命令和Case1的命令一樣。
sudo gem install cocoapods --version 1.5.2
這樣,我們就安裝了指定版本的cocoapods。
總結(jié)一下:
- 當(dāng)前版本比目標(biāo)版本低的時(shí)候,直接安裝指定版本的
cocoapods。
sudo gem install cocoapods --version 目標(biāo)版本
- 當(dāng)前版本比目標(biāo)版本高的時(shí)候
分兩步:
卸載當(dāng)前版本:
sudo gem uninstall cocoapods -v 當(dāng)前版本
sudo gem uninstall cocoapods-core -v 當(dāng)前版本
安裝指定版本:
sudo gem install cocoapods --version 目標(biāo)版本
Swift引用報(bào)錯(cuò)的問題
問題描述:
當(dāng)我們使用cocoapods安裝一個(gè)第三方的時(shí)候,安裝成功以后,在引用第三方頭文件的時(shí)候可能會(huì)報(bào)錯(cuò),報(bào)錯(cuò)信息的大概意思是找不到這個(gè)頭文件("Cannot load underlying module for 'SnapKit'" 類似這樣的語句 )。
解決方案:
com+b(把工程編譯一下就行了)
// Xcode編譯器在第一次使用cocoapods的時(shí)候。提示不是很友好,編譯一下就好了。
pod search 不到或者搜索到的第三方庫版本太低
問題描述:
我們在組件化的時(shí)候,組件組的同事提交了最新版本的本地庫,然而你搜索到的還是歷史版本的,不能使用最新的代碼,怎么辦?
解決方案:
這是因?yàn)楸镜豴od的索引沒有及時(shí)進(jìn)行同步。
命令行執(zhí)行:
pod repo update
更新完本地索引之后,就可以search到最新版本的庫了。
如果這種方法不行的話,那么試試刪除~/Library/Caches/CocoaPods目錄下的search_index.json文件
- pod setup成功后,依然不能pod search,是因?yàn)橹澳銏?zhí)行pod search生成了search_index.json,此時(shí)需要?jiǎng)h掉。
- 終端輸入:rm ~/Library/Caches/CocoaPods/search_index.json
- 刪除成功后,再執(zhí)行pod search。
此時(shí)終端輸入:pod search SKDispatcher(不區(qū)分大小寫)
輸出:Creating search index for spec repo 'master'.. Done!,稍等片刻······就會(huì)出現(xiàn)所有帶有SKDispatcher字段的類庫