文档章节

iOS 最新版的 CocoaPods 安装流程

琳小兮
 琳小兮
发布于 2016/06/17 21:21
字数 1712
阅读 413
收藏 1

首先打开终端:(Launchpad-其他-终端)在终端中输入如下指令:

1.移除现有Ruby默认源
$gem sources --remove https://rubygems.org/
2.使用新的源
$gem sources -a https://ruby.taobao.org/
3.验证新源是否替换成功
$gem sources -l

4.更新gem
$sudo gem update --system
5.安装CocoaPods
(1) $sudo gem install cocoapods
备注:如果苹果系统升级OS X EL Capitan版本后改为 $sudo gem install -n /usr/local/bin
(2) $pod setup
提示:如果终端一直停留在 Setting up CocoaPods master repo 这个状态,是因为要进行下载安装,而且目录比较大,需要耐心等待一下。
6. 新建工程,并在终端用cd指令到文件夹内(具体操作:终端输入cd+空格+工程文件夹直接拖拽到终端+回车)
$pod search 第三方名字 例如:pod search 'AFNetworking' (退出搜索按 :wq )
7.新建文件 vim “Podfile”,
vim Podfile
写入以下内容并保存 提示:(终端vim文件 按 i 可编辑 ,esc 退出编辑(如果esc没反应,control+c也可以退出编辑状态),退出编辑模式以后按 :wq 回车 可保存并退出podfile)

platform:ios,'7.0'
pod 'AFNetworking','~>3.1.0'

//如果需要添加多个库,只需要依次添加即可

platform:ios,'7.0'
pod 'AFNetworking','~>3.1.0'
pod 'MJRefresh','~>3.1.9'

备注:platform那一行,ios三个字母都要小写,而且与前面的冒号之间不能有间隔,后面的版本号也可以不写,但是有些开源库对版本是有要求的,比如要在6.0以上才能运行,遇到这样的开源库就需要写上版本号
8.安装podfile文件里面所添加的库
pod install
9.退出终端

使用方法:

1.从此以后需要使用Cocoapods生成的 .xcworkspace文件来打开工程,而不是使用以前的.xcodeproj文件
2.每次更改了Podfile文件,都需要重新执行一次pod update命令

备注:当执行pod install之后,除了Podfile,还会生成一个名为Podfile.lock的文件,它会锁定当前各依赖库的版本,之后即使多次执行pod install也不会更改版本,只有执行pod update才会改变Podfile.lock.在多人协作的时候,这样可以防止第三方库升级时候造成大家各自的第三方库版本不一致。所以在提交版本的时候不能把它落下,也不要添加到.gitignore中.

1).CocoaPods报错: The dependency 'xxx' is not used in any concrete target
出现这个错误的原因是因为 cocoaPods升级后,Podfile文件的内容格式要求发生了变化,必须指出所用第三方库的target。解决方法如下:

1.检查CocoaPods的版本(目前最新版本是1.0.1,若是最新版本,直接进入步骤3)

$pod --version

2.升级或安装最新版本

升级命令:$sudo gem update -n /usr/local/bin --system

安装命令:$sudo gem install -n /usr/local/bin cocoapods

3.修改Podfile的内容(一定要cd在当前需要修改的工程下,再进入podfile文件)

$vim Podfile

进入podfile文件以后,下面紫色部分就是需要添加的部分,意思就是在Podfile文件中指出使用第三方库的target,不明白的就对照上面的第7步看看区别吧!

platform:ios, '7.0'

target:工程名字 do

pod 'AFNetworking', '~> 3.1.0'

end

2).[!] Oh no, an error occurred.

It appears to have originated from your Podfile at line 2.

Search for existing GitHub issues similar to yours:
https://github.com/CocoaPods/CocoaPods/search?q=%2FUsers%2Fxiao6%2FMusic%2FGI06%E5%AE%9E%E8%AE%AD%E8%8A%B8%E8%8C%97%E8%8C%B6%E5%8F%B6%2FYMTea%2FPodfile%3A2%3A+syntax+error%2C+unexpected+%27%3A%27%2C+expecting+end-of-input%0Aplatform+%3A+ios%2C+%277.0%27%0A++++++++++%5E&type=Issues

If none exists, create a ticket, with the template displayed above, on:
https://github.com/CocoaPods/CocoaPods/issues/new

Be sure to first read the contributing guide for details on how to properly submit a ticket:
https://github.com/CocoaPods/CocoaPods/blob/master/CONTRIBUTING.md

Don't forget to anonymize any private data!

出现这个错误的原因是因为Podfile文件里面的platform那一行,冒号和ios之间多了一个空格

3).E325: ATTENTION

Found a swap file by the name ".Podfile.swp"
          owned by: beisheng02   dated: Tue Aug  9 09:41:12 2016
         file name: ~beisheng02/Desktop/ZJL_Buyers/Podfile
          modified: YES
         user name: beisheng02   host name: zhangjielin.local
        process ID: 775
While opening file "Podfile"

(1) Another program may be editing the same file.
    If this is the case, be careful not to end up with two
    different instances of the same file when making changes.
    Quit, or continue with caution.

(2) An edit session for this file crashed.
    If this is the case, use ":recover" or "vim -r Podfile"
    to recover the changes (see ":help recovery").
    If you did this already, delete the swap file ".Podfile.swp"
    to avoid this message.

Swap file ".Podfile.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:

我出现这个错误的原因是因为之前创建过vim podfile文件,然后没有保存就退出终端了,下次再次打开终端,添加vim podfile文件的时候由于Podfile.swp文件已经存在,所以就报错了。多按几下回车键,找到上次没保存的vim文件,:wq保存并退出就可以了。

4).[!] 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.

出现这个问题的原因是因为我直接用的文本编辑去编辑Podfile,需要使用Xcode编辑,或者使用终端敲命令去编辑。

5).[!] Invalid `Podfile` file: syntax error, unexpected tSTRING_BEG, expecting end-of-input.

在写podfile文件的时候,platform:ios, '7.0'少写了一个引号造成的,注意检查podfile文件的格式

6).pod search 搜索类库失败的解决办法

  • 执行pod setup
    • 其实在你安装CocoaPods执行pod install时,系统会默认操作pod setup,然而由于中国强大的墙可能会pod setup不成功。这时就需要手动执行pod setup指令,如下:
    • 终端输入:pod setup
    • 会出现Setting up CocoaPods master repo,稍等几十秒,最底下会输出Setup completed。说明执行pod setup成功。
    • 如果pod search操作还是搜索失败,如下:
    • 终端输入:pod search AFNetworking
    • 输出:Unable to find a pod with name, author, summary, or descriptionmatching 'AFNetworking' 这时就需要继续下面的步骤了。
  • 删除~/Library/Caches/CocoaPods目录下的search_index.json文件
    • pod setup成功后,依然不能pod search,是因为之前你执行pod search生成了search_index.json,此时需要删掉。
    • 终端输入:rm ~/Library/Caches/CocoaPods/search_index.json
    • 删除成功后,再执行pod search
  • 执行pod search
    • 终端输入:pod search afnetworking(不区分大小写)
    • 输出:Creating search index for spec repo 'master'.. Done!,稍等片刻······就会出现所有带有afnetworking字段的类库

7).[!] CocoaPods was not able to update the `master` repo. If this is an unexpected issue and persists you can inspect it running `pod repo update --verbose`

终端运行 pod repo update --verbose

© 著作权归作者所有

琳小兮
粉丝 30
博文 60
码字总数 26895
作品 0
襄阳
程序员
私信 提问
加载中

评论(1)

子弹兄
子弹兄
我今天正好用了哎
使用CocoaPods管理第三方库

DEC 2ND, 2012 前言 每种语言发展到一个阶段,就会出现相应的依赖管理工具, 或者是中央代码仓库。比如 Java: maven,Ivy Ruby: gems Python: pip, easy_install Nodejs: npm 随着iOS开发者的...

泊竹
2013/12/08
0
0
如何在CocoaPods中添加自定义的库

CocoaPods命令介绍 在 上一篇文章 中,已经介绍过CocoaPods的几条基本命令。 pod setup 用于初始化本地第三方库的Spec描述文件,所有的spec文件存都存放在 ~/.cocoapods 目录中。 pod instal...

泊竹
2013/12/09
0
0
CocoaPods管理iOS的第三方类库

使用CocoaPods管理iOS的第三方类库 OCT 15TH, 2012 iOS第三方类库的管理是一个很麻烦的事,项目信赖的类库和版本很难控制。让CocoaPods 来帮帮我们吧。 安装 先确认自己是否安装了ruby的运行...

cbliu
2014/06/22
0
0
cocoaPods安装爬坑总结

1、移除现有Ruby默认源 $ gem sources --remove https://rubygems.org/ 2、使用新的源 $ gem sources -a https://ruby.taobao.org/ 备注:现在貌似淘宝也不更新了,可以自行上网搜一个源站。...

runchen0518
2018/12/24
0
0
27 款 iOS 开源库,让你的开发溜到飞起

我爱开源。 我也爱开发者们,他们花费大量宝贵的时间创造出如此惊人的东西,然后与其他人分享,而不要求任何回报。开源作者和贡献者们,你们令人敬佩。感谢你们所有的工作。 我在处理自己的 ...

oschina
2016/11/29
5.6K
6

没有更多内容

加载失败,请刷新页面

加载更多

Linux scp命令

Linux scp命令 Linux 命令大全 Linux scp命令用于Linux之间复制文件和目录。 scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。 语法 scp [-1246BCpqrv] ...

linjin200
25分钟前
3
0
Echoin获得ZB Captial战略投资

Echoin获得ZB Captial战略投资

怎当她临去时秋波那一转
26分钟前
2
0
Jenkins 持续集成综合实战

Jenkins 持续集成综合实战 发表于 2017-01-06 文章目录 1 安装 Jenkins 1.1 安装 JDK/Maven 1.2 安装 Jenkins 1.2.1 离线安装 1.2.2 在线安装 1.2.3 基于 Tomcat 安装 1.2.4 免安装方式 1.3 ...

linzhuangrong
27分钟前
2
0
自动编码(AE)器的简单实现

一.目录 自动编码(AE)器的简单实现 一.目录 二.自动编码器的发展简述 2.1 自动编码器(Auto-Encoders,AE) 2.2 降噪自编码(Denoising Auto-Encoders, DAE)(2008) 2.3 堆叠降燥自动编码器 (Sta...

zhaowei121
31分钟前
2
0
十分良心!全网最详细的Java 自动内存管理机制及性能优化教程

先来个思维导图预览一下本文结构。 一图带你看完本文 一、运行时数据区域 首先来看看Java虚拟机所管理的内存包括哪些区域,就像我们要了解一个房子,我们得先知道这个房子大体构造。根据《J...

戎码益深
31分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部