CocoaPods是什么?



***CocoaPods的使用场景:***



1. 当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等。可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而其他类库又用到其他类库,“子子孙孙无穷尽也”,这也许是比较特殊的情况。总之意思就是,手动一个个去下载所需类库十分麻烦。还有就是这些库可能还要在编译设置中添加许多设置,也很麻烦。

2. 你项目中用到的类库有更新,你必须得重新下载新版本,重新加入到项目中,十分麻烦。



> 如果能有什么工具能解决这些恼人的问题,那将“善莫大焉”。CocoaPods来了......

>

> Cocoapods应该是iOS最常用最有名的第三方类库管理工具,上述两个烦人的问题,通过Cocoapods,只需要一行命令就可以完全解决,当然前提是你必须正确设置它。重要的是,绝大部分有名的开源类库,都支持CocoaPods。所以,作为iOS程序员的我们,掌握CocoaPods的使用是必不可少的基本技能了。



[Cocoapods官网在这里](https://cocoapods.org/)


 Ruby环境搭建



1、Ruby环境搭建

A、查看下当前ruby版本:打开终端输入 ruby -v(确实安装了,不过用这个版本接下来工作失败了,所以更新下ruby)





B、更新ruby 终端输入如下命令(把Ruby镜像指向taobao,避免被墙,你懂得)



查看当前使用镜像



`gem sources -l  用来检查当前使用哪个镜像 是否替换镜像位置成功`



替换源:

`gem sources --remove https://rubygems.org/` 

结果:https://rubygems.org/  removed from
sources



添加源:`gem sources -a
http://rubygems-china.oss.aliyuncs.com `   


稍等...

结果:http://rubygems-china.oss.aliyuncs.com added to
sources



查看是否替换镜像位置成功



`gem sources -l  用来检查当前使用哪个镜像 `


 下载安装CocoaPods


   安装



1. 终端输入:`sudo gem install -n /usr/local/bin
cocoapods`  如果出现错误,详见错误2,解决后输入以上命令

2. 输入密码:(注意:在终端中输入密码是不显示的)

3. 输入完密码 稍等…开始下载  结果:xx gems installed表示完成

4. 终端输入:`pod setup`

5. pod setup在执行时,会输出Setting up cocoapods master repo,但是会等待比较久的时间。这步其实是cocoapods在将它的信息下载到 ~/.cocoapods目录下,如果你等太久,可以试着cd到那个目录,用du -sh *来查看下载进度。 如果无法忍受龟速,你也可以参考本文底部的备注中使用cocoapods的镜像索引的内容来提高下载速度。



等待.........时间有点长

结果:setup completed



> 显示Mac隐藏文件的命令:defaults
write com.apple.finder AppleShowAllFiles -bool true

>

> 隐藏Mac隐藏文件的命令:defaults
write com.apple.finder AppleShowAllFiles -bool false


  错误



1. 错误:



   如果终端输出错误信息包含`xcodebuild`或`xcode-select`类似错误



   解决:



   在`Xcode`的`偏好设置`中选择`Location`—`Command
Line Tool`中选择一个Xcode版本



2. 错误:



   ```

   ERROR: 
Error installing cocoapods:

   activesupport requires Ruby version
>= 2.2.2.

   ```



   解决:



   对于 `ruby` 版本需要在2.0.0以上的 
有两次解决方法:



   1. 下载低版本的cocoapods  : sudo gem install
activesupport -v 4.2.6

   2. 更新ruby版本
把ruby版本更新到 2.3.0  详情看http://blog.csdn.net/lissdy/article/details/9191351



3. 断网



 ```

   MacdeMacBook-Pro:~ mac$ pod setup

   Setting up CocoaPods master repo

   [!] /usr/bin/git clone
https://github.com/CocoaPods/Specs.git master

   Cloning into 'master'...

   error: RPC failed; result=18, HTTP
code = 200

   fatal: The remote end hung up
unexpectedly

 ```



   ```

   MacdeMacBook-Pro:~ mac$ pod
setup

   Setting up CocoaPods master repo

   [!] /usr/bin/git clone
https://github.com/CocoaPods/Specs.git master

   Cloning into 'master'...

   fatal: unable to access
'https://github.com/CocoaPods/Specs.git/': Could not resolve host:
github.com

   ```


 如何使用CocoaPods?


 使用CocoaPods 在项目中导入FMDB类库



FMDB类库在GitHub地址是:[https://github.com/ccgus/fmdb](https://github.com/ccgus/fmdb)

为了确定FMDB是否支持CocoaPods,可以用CocoaPods的搜索功能验证一下。在终端中输入:

`$ pod search FMDB`

输出一大串…

这说明,FMDB是支持CocoaPods



A:

用Xcode创建一个名字CocoaPodsDemo的项目



B:

然后终端输入命令 锁定到项目根目录 也就是跟.xcodeproj文件同一级目录

`cd /Desktop/CocoaPodsDemo` 

cd+空格+后面跟你的项目的路径



cd是切换目录的意思    ls列举出当前目录所有文件夹



C:

创建Podfile文件  终端输入:

`pod init`



此命令创建Podfile文件 文件中的格式已经弄好



D:

打开Podfile文件并输入 有两种办法

1、进入工程目录文件夹,找到podfile,使用Xcode打开,编辑完保存退出,注意不要使用文本编辑打开

2、使用vim编辑器操作:在终端中输入`vi podfile`。此时文件打开
此时是vi命令模式,输入 `i` 进入编辑模式此时可以编辑内容,编辑完成后在编辑状态下按ESC键,回退到命令模式,输入:wq



输入的文字可以根据github上项目页面上的指引写

pod ‘FMDB’, ‘~>2.0’



E:

安装 终端输入:

pod install



F:

以后再打开工程使用xxxxx.xcworkspace打开工程

open <YourProjectName>.xcworkspace


 使用Cocoapods更新工程中的库



使用`pod update`更新项目中的类库



[Cocoapods的卸载](http://www.jianshu.com/p/8b61b421dd76)



[Cocoapods的降级](http://www.jianshu.com/p/e6ded86c286d)



[深入理解Cocoapods](https://objccn.io/issue-6-4/)



# 其他Tips

[关于CocoaPods中的版本管理](http://www.samirchen.com/about-podfile-lock/)



Tip1:

使用cocoapods后import不提示

选择target(就是左边你的工程target)—— BuildSettings —— search Paths 下的 User
Header Search Paths,点击“+”号添加一项:并且输入:“$(PODS_ROOT)”(没有引号),选择:recursive(会在相应的目录递归搜索文件)



Tip2:

执行pod install和pod update会升级CocoaPods的spec仓库,加一个参数可以省略这一步,然后速度就会提升不少。加参数的命令如下:

pod install --verbose --no-repo-update

pod update --verbose --no-repo-update

iOS中的CocoaPods用法及常用命令的更多相关文章

  1. [转帖]linux中systemctl详细理解及常用命令

    linux中systemctl详细理解及常用命令 2019年06月28日 16:16:52 思维的深度 阅读数 30 https://blog.csdn.net/skh2015java/article ...

  2. linux中systemctl详细理解及常用命令

    linux中systemctl详细理解及常用命令 https://blog.csdn.net/skh2015java/article/details/94012643 一.systemctl理解 Li ...

  3. iOS中block的用法 以及和函数用法的区别

    ios中block的用法和函数的用法大致相同 但是block的用法的灵活性更高: 不带参数的block: void ^(MyBlock)() = ^{}; 调用的时候  MyBlock(); 带参数的 ...

  4. iOS中Block的用法,举例,解析与底层原理(这可能是最详细的Block解析)

    1. 前言 Block:带有自动变量(局部变量)的匿名函数.它是C语言的扩充功能.之所以是拓展,是因为C语言不允许存在这样匿名函数. 1.1 匿名函数 匿名函数是指不带函数名称函数.C语言中,函数是怎 ...

  5. Maven介绍,包括作用、核心概念、用法、常用命令、扩展及配置

    由浅入深,主要介绍maven的用途.核心概念(Pom.Repositories.Artifact.Build Lifecycle.Goal).用法(Archetype意义及创建各种项目).maven常 ...

  6. [转]Maven介绍,包括作用、核心概念、用法、常用命令、扩展及配置

    转自:http://www.trinea.cn/android/maven/ 两年半前写的关于Maven的介绍,现在看来都还是不错的,自己转下.写博客的一大好处就是方便自己以后查阅,自己总结的总是最靠 ...

  7. git用法之常用命令[克隆、提交]

    1.克隆/下载项目 1)git clone git@git.soydai.cn:liuxuewen/static-file-3.0.git 或者 2)git clone http://git.soyd ...

  8. cmake用法及常用命令总结(全)

    CMakeLists.txt 的语法比较简单,由命令.注释和空格组成,其中命令是不区分大小写的.指令是大小写无关的,参数和变量是大小写相关的.但推荐全部使用大写指令.符号 # 后面的内容被认为是注释. ...

  9. git用法之常用命令

    1.git 安装好后,如何配置? a: 设置本地用户名.邮箱,很重要!之后的每次提交都会用到这两条信息,说明是谁提交了更新. $ git config --global user.name " ...

随机推荐

  1. system verilog中的类型转换(type casting)、位宽转换(size casting)和符号转换(sign casting)

    类型转换 verilog中,任何类型的任何数值都用来给任何类型赋值.verilog使用赋值语句自动将一种类型的数值转换为另一种类型. 例如,当一个wire类型赋值给一个reg类型的变量时,wire类型 ...

  2. mysql分组函数

    组函数针对的是指定字段的非空值.注意:where子句中不能出现组函数!!! avg()    平均值(只能针对数值型 ) max()    最大值(不限制类型) min()    最小值(不限制类型) ...

  3. Linux RPM、TAR包管理

    一.RPM软件包命令的使用 RPM主要有5种基本操作模式:安装.卸载.刷新.升级及查询.下面分别介绍. 1.安装软件包 命令语法: rpm -ivh [RPM包文件名称] 命令中各参数的含义如下: - ...

  4. 解决windows 2003 无法安装vss2005的问题

    1.打开vss2005  进行安装提示 未安装 sp1 2.下载了sp1 英文版本,与服务器语言对不上,删除,再下个 简体中文版 3.提示 无法识别 key,百度搜索 Windows XP/2003序 ...

  5. android activity的启动方式

    1.Standard正常启动,默认的启动方式,没什么说头 2.SingleTop 意思就是在栈顶只能存在一个相同的activity 不能叠加,如果再A上继续启动A的话,只会调用A的onNewInten ...

  6. VS 设置编译后的程序可以以管理员身份运行

    1.首先,创建一个文件命名为 XXX.exe.manifest, 并将以下内容复制到文件 <?xml version="1.0" encoding="UTF-8&q ...

  7. NHibernate系列文章二十一:延迟加载

    摘要 NHibernate的延迟加载机制是很重要的内容.通过关系映射将数据库表之间的关系映射成对象之间的关系,如果没有延迟加载机制,从主表的一个对象的查询将直接查询出所有与该对象关联的其他对象,如果关 ...

  8. PS Web切图界面设置

    界面为移动工具时(快捷键V),选中左上角的图层. 点击视图,选中显示→智能参考线,与标尺. 点击窗口,把"库" "颜色"去掉,把屏幕右上角的"通道&q ...

  9. Java开发的命名规范

    Java的命名规范 定义规范的目的是为了使项目的代码样式统一,使程序有良好的可读性,便于日后维护. 1.工程的命名(全用小写字母) 工程的命名一般全用小写字母,单词之间用下划线“_”隔开. 2.包的命 ...

  10. mongo group by

    mongo的写法与mysql等sql有着天壤之别,如最近在统计爬虫抓取的数据,其中一个就是按字段从大到小取前十个: sql写法:select count(id) from invest group b ...