文章最后补充内容
补充: cocospods指定第三方的版本号 (180726)
补充: 跳过pod setup快速安装 (180811)
补充: 最近ruby-china域名变化由org更改为com,请大家改为https://gems.ruby-china.com
补充: 解决MacOS Mojave10.14 Pod 报错 (191106)
第一步:先把ruby源搞定.
安装CocoaPods,需要ruby环境,然而Mac系统默认会安装好ruby环境。
打开Mac终端
gem sources -l //查看ruby源
默认情况下,会显示
https://rubygems.org/
ruby源在墙内是访问不到的,需要置换为国内
原来一直用的是淘宝的
//gem sources -a https://ruby.taobao.org/
但是现在不更新了,不建议用,原因可以看这个链接 https://ruby.taobao.org/
现在用这个
//删除之前使用的淘宝
//gem sources --remove https://ruby.taobao.org/
//gem source -a https://gems.ruby-china.org
为了验证你的Ruby镜像是并且仅是gems.ruby-china,可以用以下命令查看:
gem sources -l //检测是否成功
只有在终端中出现下面文字才表明你上面的命令是成功的:
https://gems.ruby-china.org
补充: 最近ruby-china域名变化由org更改为com,请大家改为 https://gems.ruby-china.com
gem sources --remove https://gems.ruby-china.org
gem source -a https://gems.ruby-china.com
第二步:升级Gem.
Gem是来管理Ruby标准包.
sudo gem update //升级gem
gem -v //查看版本
不升级在第三步可能,会报很多错误的,因为Gem版本太低,无法安装第三步,安装CocoaPods
第三步,安装CocoaPods
sudo gem install cocoapods // Mac OS X 10.11前 输入这一条
sudo gem install -n /usr/local/bin cocoapods //Mac OS X 10.11后 输入这一条
成功后
pod setup
这条命令是将Github上的开源库都托管都安装Podspec索引安装到到本地,
测试
如果有版本号,则说明已经安装成功
pod --version
第四步,利用cocoapods来安装第三方框架
1 进入要安装框架的项目的.xcodeproj同级文件夹
2 在该文件夹中新建一个文件Podfile
pod init
pod init
首先需要判断当前目录有没有 XCODEPROJ 项目,如果没有直接报错;若果有单个 XCODEPROJ 项目,会直接创建一个 podfile 文件;如果有多个XCODEPROJ 项目,需要指定一个项目,否则会报错:
[!] Multiple Xcode projects found, please specify one
或者手动 新建文件Podfile vim Podfile
vim Podfile
Podfile文件中, 写入以下内容并保存 小提示:(终端vim文件 按 i 可编辑 ,esc 退出编辑,:wq 可保存退出)
platform :ios, '7.0'
#inhibit_all_warnings!
target 'MyApp' do
pod 'AFNetworking' , '~> 3.1.0'
end
解释一下
platform
: ios, '7.0'代表当前AFNetworking支持的iOS最低版本是iOS 7.0,
MyApp
: 就是你自己的工程名字,
pod 'AFNetworking', '~> 3.1.0'
代表要下载的AFNetworking版本是3.1.0及以上版本,还可以去掉后面的'~> 3.1.0',直接写pod 'AFNetworking',这样代表下载的AFNetworking是最新版。
- 3 上面信息表示文件中告诉cocoapods需要安装的框架信息
a.该框架支持的平台
b.适用的iOS版本
c.框架的名称
d.框架的版本
- 4.导入第三方库
--no-repo-update : 不更新仓库,迅速加载第三方框架
pod install --no-repo-update
pod update --no-repo-update
- 5.可使用search命令搜索类库名
比如:
pod search AFNetworking(也可以pod search UI等,可以查询你想要的)
退出搜索, 输入 :wq
第五步,CocoaPods 中删除不需要的第三方库
-
1 打开Podfile, 找到不需要的类库, 直接删除该类库信息
比如要删除AFNetworking库 ,直接去掉Podfile中第五行信息 pod 'AFNetworking', '~> 3.1.0'
2 打开终端cd到当前项目的根目录下重新执行
pod update --no-repo-update
- 3 更新完成就删除成功了
补充:cocospods指定第三方的版本号
pod 'AFNetworking' //不显式指定依赖库版本,表示每次都获取最新版本
pod 'AFNetworking', '2.0' //只使用2.0版本
pod 'AFNetworking', '> 2.0' //使用高于2.0的版本
pod 'AFNetworking', '>= 2.0' //使用大于或等于2.0的版本
pod 'AFNetworking', '< 2.0' //使用小于2.0的版本
pod 'AFNetworking', '<= 2.0' //使用小于或等于2.0的版本
pod 'AFNetworking', '~> 0.1.2' //使用大于等于0.1.2但小于0.2的版本
pod 'AFNetworking', '~>0.1' //使用大于等于0.1但小于1.0的版本
pod 'AFNetworking', '~>0' //高于0的版本,写这个限制和什么都不写是一个效果,都表示使用最新版本
补充: 跳过pod setup快速安装
有不少同学执行pod setup这一步, 感觉很慢.....
大约要下载200M的文件,偏偏下载速度出奇的慢,本人保持在30K/S,大约2个小时,关键是没有任何进度条显示,就这样傻乎乎的卡死在这里
一句 pod setup 卡你2个小时,前提还是你安装没有错,如果错误,又要重新2小时.非常浪费时间
前面说了,pod setup 这条命令是将Github上的开源库都托管都安装Podspec索引安装到到本地.
简单说就是下载一个包,到本地,也就是这个东西
如果你同事电脑上有安装好,你其实可以从你同事电脑上拷贝过来,直接放到该路径就OK了.
如果你身边没有装好的CocoaPods的朋友,可以访问这个链接
https://github.com/CocoaPods/Specs (github所有的第三方开源库的Podspec文件都托管在这里,这也是你pod setup所要下载的).
选择Download ZIP,用你的浏览器或者迅雷什么的,什么下载快用什么,分分钟下载完目前为111.3M(随着开源库的壮大,会慢慢变大).
解压后为这个样子
对比上图,Specs-master改名为master 放在 ~/.cocoapods/repos 路径即可.
~/.cocoapods/repos 这个路径是在执行 pod setup生成的,所以电脑无法前往此路径是,建议先pod setup下,然后关闭掉即可生成路径.
还有就是挂个VPN, 会很快下载
补充: 解决MacOS Mojave10.14 Pod 报错
- 解决MacOS Mojave10.14 Pod报错 -bash: /usr/local/bin/pod: /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby: bad interpreter: No such file or directory
1.我的解决方法:
(1)首先执行如下命令查看所有 gem 源,检查是否是最新的:
gem sources -l
(2)执行如下命令将当前的 gem 源删除:
gem sources --remove https://rubygems.org/
(3)然后在执行如下命令添加新的 gem 源:
gem sources -a https://gems.ruby-china.com
(4)接着执行如下命令更新 gem
sudo gem update --system
(5)接着执行如下命令升级 CocoaPods, 执行完这步, 这时试下pod init
可以的话,可以不操作6,7步
sudo gem install -n /usr/local/bin cocoapods --pre
(6)接着执行如下命令更新本地仓库
pod repo update
(7)最后再次执行 pod install 命令会发现不再报错了。
2.如果还没解决 试下以下方法:
(1)终端执行
brew link --overwrite cocoapods
(2)尝试 Pod 命令是否已经恢复, 若报错继续执行
brew reinstall cocoapods
brew install ruby
brew link --overwrite cocoapods
(3)尝试 Pod 命令是否已经恢复