Xcode9下CocoaPods升级遇到问题的解决方案

544 阅读2分钟

最近要开发一款新的项目,所以升级了最新的Mac OS与Xcode 9作为项目环境进行开发,但是在cocoaPods install 时发生了问题,提示RuntimeError - [Xcodeproj] Unknown object version.

检索了一下问题,可能是因为Pods版本较低,不匹配Xcode 9导致install失败。于是我又尝试升级CocoaPods: sudo gem install cocoapods。
输入密码以后出现:ERROR:While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/xcodeproj

好吧,gem也有毛病,那就先更新gem咯:sudo gem update --system

输入密码以后出现:ERROR:While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/xcodeproj
gem installed 成功。

重新安装cocoaPods最新版本:sudo gem install -n /usr/local/bin cocoapods --pre

OK,gem与cocoaPods都安装成功,看看版本:pod --version

添加淘宝源:gem sources -a https://ruby.taobao.org/ (http://gems.ruby-china.org 注意:淘宝源不再维护,替换成官方中文源,注意是http,不是https)

https://ruby.taobao.org/ 已有缓存,那么我们再用命令进行安装:

pod install

安装成功,工程出现xcworkspace。

总结:

CocoaPods是用ruby写的,并划分成了若干个Gem包。CocoaPods在解析执行过程中最重要的几个包的路径分别是:CocoaPods/CocoaPods、CocoaPods/Core和CocoaPods/Xcodeproj。

CocoaPods / CocoaPod

这是面向用户的组件,每当你执行一个pod命令时,这个组件将被激活。它包括了所有实用CocoaPods的功能,并且还能调用其他gem包来执行任务。

CocoaPods / Core

Core gem提供了与CocoaPods相关的文件(主要是Podfile和podspecs)的处理。

要想成功升级cocoapods需要一个正确的操作流程和命令语句。

1、更新gem:sudo gem update --system

2、删除 gem源:gem sources --remove http://gems.ruby-china.org

3、添加 gem源:gem sources -a http://gems.ruby-china.org(淘宝源不再维护,替换成官方中文源,注意是http,不是https)

4、查看gem源是否是最新的:gem sources -l

5、升级cocoapods:sudo gem install -n /usr/local/bin cocoapods --pre

6、查看当前cocoapods版本:pod --version

7、在工程下安装cocopods:pod install / pod install --verbose --no-repo-update