想必大家和我一样,近段时间使用cocoapods,会有一个警告:
[!] The `master` repo requires CocoaPods 1.0.0 - (currently using 0.39.0)
这句话的意思是:当前cocoapods版本太低(0.39.0),而现在要求的版本为1.0.0;
升级cocoa pods之前要先升级Ruby,升级Ruby之前要先升级RVM:(RVM:Ruby Version Manager,Ruby版本管理器,包括Ruby的版本管理和Gem库管理(gems))
按照网上的技术贴,先升级RVM:在终端输入 rvm -v,检测版本,可是终端显示:-bash: rvm: command not found :!!!excuse me,没有发现RVM,所以得先安装。但是所谓的技术贴并没有写怎么安装这个,直接进行下一步(PS:吐槽一下网上的攻略,几乎都是复制粘贴加转载。一篇一模一样的技术文,竟然有N个作者,醉了)
打不死的小强精神让我找到安装方法了:
安装RVM:1.打开终端,输入:curl -L get.rvm.io | bash -s stable,根据当前网速,等待一段时间就可以安装好了,如下图:
2.监测安装的RVM版本:rvm -v
3.用RVM升级Ruby
3.1.查看当前Ruby的版本ruby -v
3.2列出当前ruby的所有版本rvm list known
3.3选一个最新的安装 ,在终端输入:rvm install 2.3.0(PS:网上很多人说最好安装2.2.0.可是我这里安装了2.3.0并无大碍)接下来就是等待,受网速影响 (有两处是需要按下回车键的,如下图。PS:下图中标注的是“空格”,实际是“回车”键!标注时马虎了)
这就算安装完最新的Ruby了,接下来就是安装最新的cocoapods
4.在终端输入:sudo gem install cocoa pods
4.1 在终端运行一连串命令后,你看到 xx gem installed就表示安装成功了(PS:xx是一个数字,我这里是25,其它电脑不一定,因电脑而异)
4.2 继续 在终端输入:
如果你的 OS X版本小于10.11:sudo gem install cocoa pods
OS X版本大于10.11:sudo gem install -n /usr/local/bin cocoa pods
(PS:二选一,大家可以看下面截图,两个命令的结果都一样。 But,据说,现在新版本都用后者,所以你们可以用后者);然后出现 xx gem installed就表示成功了 (同上,xx表示数字)
4.1与4.2图如下:
以上,就表示cocoa pods已经安装成功了,你可以 输入 pod 查看pods的版本 ,出现下图一样的代码 就是100% 成功了
5.接下来就是在项目中使用cocoapods了 (和旧版本大同小异,大家可以看我的旧版本帖子:http://blog.csdn.net/wyz670083956/article/details/51537632)
5.1 cd 项目路径 (cd 和路径中有空格),我这里的项目是CocoapodsTest
5.2 然后输入 pod init,然后项目中会出现白色的podfile文件
5.3 输入pod install
出现上图 绿色代码表示成功了,打开工程文件,你会发现多了3个文件,按照绿色代码的要求,以后直接从xxxx.xcworkspace这个文件点击进去写代码
6.进入工程,打开Podfile文件,你会看到,新版本的Podfile文件和旧版本的不一样,有3个target‘xxx’
6.1 使用第三方库:进入pod file文件,在第一个target下写 pod’XXXX’,(PS:在podfile文件里可能有些程序员会在第三方库的后面加入版本号:pod'Masonry','~> 0.6.4’;这里可加可不加,不加的话,系统默认给你最新)
然后在终端输入 命令:
pod install --no-repo-update (可以直接输入pod install )
pod update --no-repo-update (这句可不要,这命令主要是升级的作用)
这就成功的导入第三方库了,如下图:
7.接下来就是使用第三方库;如下图,在配置里新增一个值“$(PODS_ROOT)”,点击选择”recursive”,这样Xcode就会在项目目录中递归搜索文件且会自动找到Pods文件,就可以在项目中import第三方库的头文件了
问题1:
有个兄弟看了我的文章给我私信说了遇到的问题:更新、安装完Ruby(2.4.0)之后,准备安装cocoapods(sudo gem install cocoapods)遇到了一个问题:
ERROR:while executing gem ... (TypeError)
incompatible marshal file format (cannot be read)
format version 4.8 required;10.60 give
如下图:
初期以为是Ruby版本过高的原因(因为网上大多数人建议安装2.2.0),后来发现,不是!最后解决的办法是,更换镜像(gem 源),众所周知,cocoapods是国外的东西,而我们身处天朝,所以要,以前是淘宝提供的镜像:https://ruby.taobao.org/
现在淘宝不维护了,所以要改成:https://gems.ruby-china.org(传送门:http://www.tuicool.com/articles/aMRZBfy )
言外之意,就是你要重新开始装一遍cocoapods!把原来镜像是淘宝的那一步换掉就OK(重新开始怎么装,请看我另一篇博客:http://blog.csdn.net/wyz670083956/article/details/51537632)
PS:虽然用改变镜像的方法解决了这个问题,但是我依然觉得这不是根源,不过目前没发现更好的方法!!
PS:欢迎各位兄弟过来一起发现问题,讨论问题,解决问题!!!
问题2:
今天打开一个半年前的项目(那是cocoapods还没需要升级),我在终端升级导入的第三方库时,出现了错误:
[!] The dependency `Masonry` is not used in any concrete target.
注:此时的cocoa pods已经是升级过后的最新版
原因,因为新版的cocoa pods 的 Podfile文件有一个target,而旧版本灭有。所以我在Podfile文件里加了target 'xxx' do (xxx为你的工程名) 和对应的end,如下图;然后再在终端里cd路径,再依次 pod install ,pod update 即可
注:新版的Podfile文件里还有另外两个 target:建议不要加入,因为我加入后出现错误:工程里pods文件打不开
工程里 pods文件消失了
问题三:下载的代码因为pod问题无法运行
问题:从网上(githu、各种官网)下载下来的工程代码,有些因为编写年代久远,pod还没升级,所以无法运行,工程里的Pods.xcodeproj显示为红色
解决:在终端里cd路径,然后 pod update 即可(关掉工程再打开运行).
大写的注:
这篇文章写得匆忙,很多东西没交代清楚,以后有时间会慢慢补上!!各位看官有更好的见解可与我分享,或者指出我的错误,谢谢! QQ:1296460793