简单说明本次知识要点
1.Cocoapods的安装;
2.安装遇到的问题;
3.安装总结;
4.最新补充;
背景介绍: 前几天发现笔记本有将近50个G的空间凭空消失了(用mac的朋友们有没有这个疑惑,求解答),一怒之下,就把系统格了,随之而来的就有各种问题了, 其中一个便是这个,虽然网上有很多的文章,但某些不全的地方说不定就在这看到啦,哈哈,方便各位学友吧,于是本文油然而生...
才疏学浅,不足之处,还请各位大神指正!闲话少说,言归正传!
1.Cocoapods的安装
a. 移除现有Ruby默认源
gem sources --remove https://rubygems.org/
b. 使用新的源
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
c. 验证新源是否替换成功
gem sources -l
出现以代码表示替换成功
*** CURRENT SOURCES ***
https://rubygems.org/
d. 安装CocoaPods
sudo gem install cocoa pods
备注:苹果系统升级 OSX EL Capitan 后改为
sudo gem install -n /usr/local/bin cocoa pods 这一步会让输入密码;
5. 设置pod仓库
pod setup
终端会停留在 Setting up CocoaPods master repo 一段时间,通过新开一个终端窗口,输入"cd ~/.cocoapods/"命令行跳到cocoapods文件夹内,执行"du -sh *"查看文件夹的大小。需要下载安装,而且目录较大,请耐心等待。如果顺利,安装完成后会出现 Setup completed大功告成 ,你便可享受Cocoapods带来的快感啦啦...
以上如果顺利,则说明你的RP很好; 然世事一般不会如此顺利;以下为安装可能遇到的一些问题;在此略举一二!
2. 安装遇到的坑
1.常规坑
升级Ruby环境
如果你用 gem update --system 时,会出现如下错误
Updating rubygems-update
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.
这说明你没有权限,要用以下命令;
sudo gem update --system值得注意的是:在新系统10.11以上的要用
sudo gem install -n /usr/local/bin cocoapods
2. 在OS X EI Capitan中的新坑
如下:
Error installing cocoapods:
activesupport requires Ruby version >= 2.2.2.
要求ruby环境必须大于以上版本,可以用 ruby -v 来查看当前ruby版本,安装RVM, Ruby Version Manager, Ruby 版本管理器, 包括Ruby的版本管理器和Gem库管理(gems)
第一步,安装RVM
curl -L get.rvm.io | bash -s stable
等待一段时间, 成功安装RVM
## Thank you for using RVM!
# We sincerely hope that RVM helps to make your life easier and more enjoyable!!!
#测试是否安装正常,输入以下命令
source ~/.bashrc
source ~/.bash_profile
rvm -v
rvm 1.27.0 (latest) by Wayne E. Seguin, Michal Papis[https://rvm.io/]
第二步,用RVM升级Ruby
a. 查看当前ruby版本
ruby -v
ruby 2.0.0
b. 列出已知的ruby版本
rvm list known
c. 安装ruby 2.3.0
rvm install 2.3.0
至此,ruby环境安装完成,便可从新按照步骤一来从新安装啦;
另一个错误:
[!] An error occurred while performing `git pull` on repo `master`.
[!] /usr/bin/git pull --ff-only
这个错误应该是说这个节点有问题。在网上搜下资料,然后试试把cocoapods的节点删除,重新添加一个节点;
原因: Cocoapods的分支不支持当前最新的Xcode版本
解决办法: 删除master分支 重新建立新的分支
sudo rm -fr ~/.cocoapods/repos/master
然后再: pod setup
实用的技巧
a. 打印Xcode路径:xcode-select --print-path
b. "cd ~/.cocoapods/"命令行跳到cocoapods文件夹内,执行"du -sh *"查看文件夹的大小,实时了解安装动态,以解等待之苦。
c. 在新版本中 [!] The dependency `MBProgressHUD` is not used in any concrete target.
新的cocoapods不能像之前那样安装第三方了。现在的格式是要加上项目的target。如下:
platform :ios, '8.0'
target 'ceshi' do
pod 'AFNetworking', '~> 2.6'
pod "MBProgressHUD"
end
里面的 ceshi 记得替换为自己项目里面的target。这样就基本OK了,执行pod install
d. 在新版的Xcode中,用到插件Cocoapods时,可能也会不好使,至于错误忘记贴出来了,如果不好用了,你就直接在Podfile中添加一下格式试下即可;
platform :ios, '8.0'
target 'ceshi' do
pod 'AFNetworking', '~> 2.6'
pod "MBProgressHUD"
end
将要添加的第三方放到target do ~ end 之间 另外还有一个路径的问题;
安装命令: sudo gem install -n /usr/local/bin cocoapods
用上述命令安装的cocoapods,那么在Xcode的cocoapods插件的GEM_PATH里写入 /usr/local/bin 即可
在终端里输入 gem env
找到SHELL PATH: 会出现以下路径:
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
通过命令找到这些,一个个试试,总之,肯定有一个是正确的;填入即可;
3.结语
好了,至此已至深夜,常见的问题已差不多解决了,要给朋友们说再见了,下次继续交流,不足之处还请各位大神不吝赐教!
最新补充:
cocoapods,如果在安装时出现类似错误The dependency `AFNetworking` is not used in any concrete target.
就可以按照上述实用技巧d步骤去写,还有一种简单的方法: 在新项目中可以使用,cd到目录文件夹中,直接 pod init 即可完成Podfile文件的创建里面会预置需要补充的内容,试一下就知道了,预置内容如下:
# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
target 'safafd' do
# Uncomment this line if you're using Swift or would like to use dynamic frameworks
# use_frameworks!
# Pods for safafd
target 'safafdUITests' do
inherit! :search_paths
# Pods for testing
end
end
(2018年10月16)新的安装错误补充
如果有以下的提示、其实也是已经成功了,但是如果你觉得「!」不舒服的话,[!] This is a test version we'd love you to try. (以下是完整的信息)
CocoaPods 1.6.0.beta.1 is available.
To update use: `sudo gem install cocoapods --pre`
[!] This is a test version we'd love you to try.
For more information, see https://blog.cocoapods.org and the CHANGELOG for this version at https://github.com/CocoaPods/CocoaPods/releases/tag/1.6.0.beta.1
Setup completed
遇到这种情况、输入sudo gem install cocoapods --pre 会报以下错误:
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /usr/bin directory.
改用以下命令即可:
sudo gem install -n /usr/local/bin cocoapods 即可以完成安装;