更新:
Mac M1版本安裝:
1.Finder應(yīng)用程序中選中終端框咙,command+i顯示簡介
2.勾選使用Rosetta打開
3.執(zhí)行(安裝過就下一步)
sudo gem install cocoapods
4.執(zhí)行:
sudo arch -x86_64 gem install ffi
arch -x86_64 pod install
Intel版
安裝準備:
在終端中操作,首先通過3和4檢查ruby源和版本
- 移除現(xiàn)有Ruby默認源
gem sources --remove https://rubygems.org/
- 使用新的源
gem sources -a https://gems.ruby-china.com/
"https://ruby.taobao.org/" 不能用了
- 驗證新源是否替換成功
gem sources -l
- 檢查 gem 版本號
sudo gem -v
升級gem
sudo gem update —system
如果報錯:
ERROR: While executing gem ... (OptionParser::AmbiguousOption)
ambiguous option: -system
安裝RVM:
\curl -sSL https://get.rvm.io | bash -s stable --ruby
查看Ruby版本:
ruby -v
Ruby已知版本:
rvm list known
安裝Ruby:
rvm install 2.4.1
安裝CocoaPods
(1)
sudo gem install -n /usr/local/bin cocoapods
輸入電腦密碼, 回車等待.
ERROR: Error installing cocoapods:
ERROR: Failed to build gem native extension.current directory: /Library/Ruby/Gems/2.6.0/gems/ffi-1.12.2/ext/ffi_c
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby -I /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0 -r ./siteconf20200317-4203-18pus5p.rb extconf.rb
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/include/ruby.hYou might have to install separate package for the ruby development
environment, ruby-dev or ruby-devel for example.
因為ruby版本低,執(zhí)行:
brew upgrade ruby
(2)
pod setup
需要一段時間.
如果安裝失敗 ~/.cocoapods 里面是空的,就需要重新setup.
命令如下:
pod repo remove master
pod setup
如果安裝成功,~/.cocoapods下文件夾會有幾百M.
(3)創(chuàng)建Podfile文件李剖,在終端cd到工程文件夾內(nèi),下邊(1)和(2)任選其一:
1).新建文件 “Podfile”囤耳,終端執(zhí)行
vim Podfile
寫入2)的內(nèi)容并保存.
提示: 終端vim文件按 i 可編輯 , esc 退出編輯, : wq 可保存退出
2).終端執(zhí)行:
pod init
然后在Xcode中打開podfile文件篙顺,如果用TextEdit打開修改Podfile偶芍, pod install后會報警告:
[!] Your Podfile has had smart quotes sanitised. To avoid issues in the future, you should not use TextEdit for editing it. If you are not using TextEdit, you should turn off smart quotes in your editor of choice.
里面的樣式如下:
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0' // 最低支持的系統(tǒng)版本
target 'targetName' do
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
# use_frameworks!
# Pods for sync
// pod 'AFNetworking'
end
(4)搜索三方庫:
pod search 庫名
(5)導(dǎo)入第三方庫
pod update
(比較慢)
或者pod install
或者pod update --no-repo-update
如果不想在pod update的時候升級repo庫 ,可以忽略掉慰安,使用
pod update --no-repo-update
,比較快聪铺, 但是如果github上pods的三方庫有新版本了化焕,你本地搜索到的還是舊版本,新版本是無法裝配的铃剔,所以每隔一段時間最好執(zhí)行一下pod repo update
撒桨,
--verbose
是打印詳細信息.
出現(xiàn)
Setting up CocoaPods master repo
,cd 到~/.cocoapods键兜,如果repos文件夾大小一直沒有變化凤类, 因為墻阻擋了cocoapods.org。
oschina是國內(nèi)的服務(wù)器, 可以用它們CocoaPods索引庫的鏡像:
pod repo remove master
pod repo add master http://git.oschina.net/akuandev/Specs.git
pod repo update
第二條命令執(zhí)行的時候會比較耗時普气,要去把整個specs倉庫clone一下谜疤,下載到 ~/.cocoapods里, cd 到~/.cocoapods现诀,
用du -sh *
命令來查看文件大小夷磕,需要等待一段時間,這個目錄最終大小是幾百M,每個CocoaPods版本不同仔沿。
(6)刪除三方庫:
在Podfile文件坐桩, 刪除想要刪除的三方庫(或者前面加#注釋掉),然后終端執(zhí)行pod install
或pod update
封锉。
刪除一些三方庫后編譯可能會報錯: library not found for -l庫名绵跷,解決:
在Build Settings中搜索Other Linker Flags,去掉-l"庫名"成福。
(有時不管用碾局,應(yīng)該是cocoapods的版本問題)
更新CocoaPods版本:
sudo gem update cocoapods
查看版本:
pod --version
導(dǎo)入三方庫報錯:
[!] CocoaPods was not able to update the
master
repo. If this is an unexpected issue and persists you can inspect it runningpod repo update --verbose
```
嘗試解決:
嘗試1: 根據(jù)提示,跑一下
pod repo update --verbose
嘗試2:如果還是出現(xiàn)原來問題奴艾,升級CocoaPods版本
sudo gem update cocoa pods
嘗試3:如果升級還是出現(xiàn)原來的問題擦俐,那么重裝CocoaPods .
- 首先查看本地裝了關(guān)于cocoapods的哪些東西,在終端輸入
gem list --local | grep cocoapods
- 接著全部卸掉
sudo gem uninstall cocoapods
- 再安裝
sudo gem install cocoapods
嘗試4:如果問題依舊握侧,那么清除緩存蚯瞧,清除命令:
sudo rm -fr ~/Library/Caches/CocoaPods/
sudo rm -fr ~/.cocoapods/repos/master
pod setup
還不行的話就把當前 Pods 目錄清空:
sudo rm -fr Pods/
sudo gem install -n /usr/local/bin cocoapods
pod setup
看看還有沒有報錯.
CocoaPods的使用補充:
使用CocoaPods來添加第三方類庫, 無論是執(zhí)行pod install
還是pod update
, 如果都卡在了Analyzing dependencies
不動, 原因在于當執(zhí)行以上兩個命令的時候會升級CocoaPods的spec倉庫, 加一個參數(shù)可以省略這一步, 命令如下:
pod install --verbose --no-repo-update
pod update --verbose --no-repo-update
pod install
只會按照Podfile的要求來請求類庫,如果類庫版本號有變化品擎,那么將獲取失敗埋合。 但是pod update
會更新所有的類庫,獲取最新版本的類庫萄传。平時一般使用pod update --no-repo-update
更新甚颂,定期使用pod update
更新.
Cocoapods降低版本及卸載
一. 移除pod組件
1.這條指令會告訴你Cocoapods組件裝在哪里 :
which pod
2.你可以手動移除這個組件 :
sudo rm -rf 路徑
二. 移除 RubyGems 中的 Cocoapods程序包
Q: RubyGems是什么?
A: RubyGems(簡稱 gems)是一個用于對 Ruby組件進行打包的 Ruby 打包系統(tǒng)蜜猾。 它提供一個分發(fā) Ruby 程序和庫的標準格式,還提供一個管理程序包安裝的工具振诬。
1.查看gems中本地程序包
gem list
2.移除程序包
sudo gem uninstall cocoapods -v 要移除的版本號
3.安裝指定版本的Cocoapods
sudo gem install cocoapods -v 要安裝的版本號
終端走代理:
export http_proxy=http://proxyAddress:port
Example:export http_proxy=http://127.0.0.1:1087
Homebrew官網(wǎng)
https://brew.sh/index_zh-cn.html