修訂歷史
Version | Date | Description |
---|---|---|
1.0 | 2017.4.3 | Init |
問(wèn)題
問(wèn)題的原因在于踩窖,有兩個(gè)項(xiàng)目需要同步開(kāi)發(fā)势就,其中老項(xiàng)目使用 0.39 版本的 CocoaPods杀饵,而新項(xiàng)目需要使用 1.0 以上版本的 CocoaPods。
解決方案
1. 升級(jí) CocoaPods
因?yàn)楸镜匕惭b的是 0.39咙鞍,需要先升級(jí):
$ sudo gem install cocoapods
$ pod setup
關(guān)于如何安裝 CocoaPods房官,參考 用CocoaPods做iOS程序的依賴管理
安裝成功:
? LightningMain git:(master) ? pod --version
1.2.1
? LightningMain git:(master) ?
查看本地安裝的 CocoaPods 版本列表:
? WeiboMain:note git:(dev_771) ? gem list cocoapods
*** LOCAL GEMS ***
cocoapods (1.2.1, 1.1.1, 0.39.0)
cocoapods-core (1.2.1, 1.1.1, 0.39.0)
cocoapods-deintegrate (1.0.1)
cocoapods-downloader (1.1.3, 0.9.3)
cocoapods-plugins (1.0.0, 0.4.2)
cocoapods-search (1.0.0, 0.1.0)
cocoapods-stats (1.0.0, 0.6.2)
cocoapods-trunk (1.2.0, 0.6.4)
cocoapods-try (1.1.0, 0.5.1)
? WeiboMain:note git:(dev_771) ?
2. 安裝 CocoaPods 0.39
CocoaPods 其實(shí)并不是覆蓋安裝,除非你顯式的刪除:
gem uninstall cocoapods
因?yàn)槲抑皥?zhí)行過(guò)上一步续滋,所以我還需要重新安裝 CocoaPods 0.39:
sudo gem install cocoapods -v 0.39
安裝成功:
? ~ pod --version
1.2.1
? ~ pod _0.39.0_ --version
0.39.0
安裝后可以通過(guò)以下命令指定 CocoaPods 的版本:
pod _0.39.0_ install
3. 修改 CocoaPods 默認(rèn)版本
到目前為止翰守,CocoaPods 的默認(rèn)版本是最新的 1.2.1,而老項(xiàng)目中寫(xiě)了很多腳本疲酌,所以我需要將默認(rèn)的 CocoaPods 改為 0.39蜡峰。
? ~ which pod
/Users/waterforest/.rvm/rubies/ruby-2.2.4/bin/pod
? ~ subl /Users/waterforest/.rvm/rubies/ruby-2.2.4/bin/pod
修改前:
require 'rubygems'
version = ">= 0"
if ARGV.first
str = ARGV.first
str = str.dup.force_encoding("BINARY") if str.respond_to? :force_encoding
if str =~ /\A_(.*)_\z/ and Gem::Version.correct?($1) then
version = $1
ARGV.shift
end
end
gem 'cocoapods', version
load Gem.bin_path('cocoapods', 'pod', version)
修改后:
require 'rubygems'
version = "0.39"
if ARGV.first
str = ARGV.first
str = str.dup.force_encoding("BINARY") if str.respond_to? :force_encoding
if str =~ /\A_(.*)_\z/ and Gem::Version.correct?($1) then
version = $1
ARGV.shift
end
end
gem 'cocoapods', version
load Gem.bin_path('cocoapods', 'pod', version)
修改成功:
? ~ pod --version
0.39.0
? ~ pod _1.2.1_ --version
1.2.1
? ~
在這個(gè)方案之前,我還使用過(guò) alias 的方式朗恳,但是 alias 這個(gè)方案有兩點(diǎn)問(wèn)題:
- 默認(rèn)的 pod alias 成了 pod _0.39.0_ 之后湿颅,無(wú)法使用 pod _1.2.1_ 來(lái)指定版本了,這意味著每一個(gè)版本都需要一個(gè) alias
- 如果你寫(xiě)了大量的腳本粥诫,這些腳本在執(zhí)行的時(shí)候并不會(huì)做 source ~/.bash_profile 或者 source ~/.zshrc 這樣的默認(rèn)操作