更新:
Mac M1版本安装:
1.Finder应用程序中选中终端,command+i显示简介
2.勾选使用Rosetta打开
3.执行(安装过就下一步)
sudo gem install cocoapods
4.执行:
sudo arch -x86_64 gem install ffi
arch -x86_64 pod install
Intel版
安装准备:
在终端中操作,首先通过3和4检查ruby源和版本
- 移除现有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版本低,执行:
brew upgrade ruby
(2)
pod setup
需要一段时间.
如果安装失败 ~/.cocoapods 里面是空的,就需要重新setup.
命令如下:
pod repo remove master
pod setup
如果安装成功,~/.cocoapods下文件夹会有几百M.
(3)创建Podfile文件,在终端cd到工程文件夹内,下边(1)和(2)任选其一:
1).新建文件 “Podfile”,终端执行
vim Podfile
写入2)的内容并保存.
提示: 终端vim文件按 i 可编辑 , esc 退出编辑, : wq 可保存退出
2).终端执行:
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' // 最低支持的系统版本
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)导入第三方库
pod update
(比较慢)
或者pod install
或者pod update --no-repo-update
如果不想在pod update的时候升级repo库 ,可以忽略掉,使用
pod update --no-repo-update
,比较快, 但是如果github上pods的三方库有新版本了,你本地搜索到的还是旧版本,新版本是无法装配的,所以每隔一段时间最好执行一下pod repo update
,
--verbose
是打印详细信息.
出现
Setting up CocoaPods master repo
,cd 到~/.cocoapods,如果repos文件夹大小一直没有变化, 因为墙阻挡了cocoapods.org。
oschina是国内的服务器, 可以用它们CocoaPods索引库的镜像:
pod repo remove master
pod repo add master http://git.oschina.net/akuandev/Specs.git
pod repo update
第二条命令执行的时候会比较耗时,要去把整个specs仓库clone一下,下载到 ~/.cocoapods里, cd 到~/.cocoapods,
用du -sh *
命令来查看文件大小,需要等待一段时间,这个目录最终大小是几百M,每个CocoaPods版本不同。
(6)删除三方库:
在Podfile文件, 删除想要删除的三方库(或者前面加#注释掉),然后终端执行pod install
或pod update
。
删除一些三方库后编译可能会报错: library not found for -l库名,解决:
在Build Settings中搜索Other Linker Flags,去掉-l"库名"。
(有时不管用,应该是cocoapods的版本问题)
更新CocoaPods版本:
sudo gem update cocoapods
查看版本:
pod --version
导入三方库报错:
[!] 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: 根据提示,跑一下
pod repo update --verbose
尝试2:如果还是出现原来问题,升级CocoaPods版本
sudo gem update cocoa pods
尝试3:如果升级还是出现原来的问题,那么重装CocoaPods .
- 首先查看本地装了关于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来添加第三方类库, 无论是执行pod install
还是pod update
, 如果都卡在了Analyzing dependencies
不动, 原因在于当执行以上两个命令的时候会升级CocoaPods的spec仓库, 加一个参数可以省略这一步, 命令如下:
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 打包系统。 它提供一个分发 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官网
https://brew.sh/index_zh-cn.html