一.CocoaPods的介绍

什么是CocoaPods
CocoaPods是OS X和iOS下的一个第三类库管理工具,通过CocoaPods工具我们可以为项目添加被称为“Pods”的依赖库(这些类库必须是CocoaPods本身所支持的),并且可以轻松管理其版本。
Cocoapods意义体现在两个方面。第一,在引入第三方库时它可以自动为我们完成各种各样的配置,包括配置编译阶段、连接器选项、甚至是ARC环境下的-fno-objc-arc配置等。第二,使用CocoaPods可以很方便地查找新的第三方库,这些类库是比较“标准的”,而不是网上随便找到的,这样可以让我们找到真正好用的类库。
接下来我们将介绍CocoaPods的使用。
CocoaPods的核心组件
CocoaPods是用Ruby写的,并划分成了若干个Gem包。
CocoaPods在解析执行过程中最重要的几个包的路径分别是:CocoaPods/CocoaPods、 CocoaPods/Core和 CocoaPods/Xcodeproj。
CocoaPods / CocoaPod:这是面向用户的组件,每当执行一个pod命令时,这个组件将被激活。它包括了所有实用CocoaPods的功能,并且还能调用其他gem包来执行任务。
CocoaPods / Core:Core gem提供了与CocoaPods相关的文件(主要是podfile和podspecs)的处理。
Podfile:该文件用于配置项目所需要的第三方库,它可以被高度定制。本文中我们主要在这里做动作。
Podspec:该文件描述了一个库将怎样被添加进工程中。.podspec文件可以标识该第三方库所需要的源码文件、依赖库、编译选项,以及其他第三方库需要的配置。
CocoaPods / Xcodeproj:这个包负责处理工程文件,它能创建以及修改.xcodeproj文件和.xcworkspace文件。它也可以作为一个独立的包使用,当你要编写修改项目文件的脚本时,可以考虑使用CocoaPods/Xcodeproj。

三.CocoaPods的安装

一、初次安装cocoaPods(就是说之前没有安装过,废话真多,哈哈,之前安装过的看第二大项)

1.开启 terminal (终端),/**$后面的代码复制的终端上*/

2.移除现有 Ruby 默认源

$      gem sources --remove https://rubygems.org/
3.使用新的源
$ gem sources -a https://ruby.taobao.org/ 4.验证新源是否替换成功
$ gem sources -l 5.安装 CocoaPods $ sudo gem install cocoapods $ pod setup 备注:苹果系统升级 OS X EL Capitan 后安装改为: $ sudo gem install -n /usr/local/bin cocoapods //等待再等待,这个运行时间会比较长 $ pod setup 6.更新 gem
// $ sudo gem update --system 7.新建工程,并在终端用 cd 指令到文件夹内 $ pod search AFNetworking 8.新建 Podfile 文件 (cd /Users/shiyunlei/Desktop/CocoapodsSample(进入工程目录,cd后面的是工程的路径))
$ touch Podfile 9.然后使用vim编辑Podfile文件,使用命令: $ vim Podfile
然后紧接着按键盘上的“i”键,变成如下状态,这个时候可以对Podfile文件进行编辑: $ platform:ios, ‘8.0‘ //这个是必须要添加 $ target 'CIOTimes' do # xcodeproj '项目路径(这里写项目路径).xcodeproj'
pod ....
$ end 在编辑完成后按“esc”,再按“:”,这个时候输入wq,点击回车,保存并退出。
10.导入第三方库
$ pod install
11.退出终端
12.这个时候会看到之后打开工程都需要从类型为工程名.xcworkspace文件打开。
13.如何编译包含cocoapods的项目
比如从github下载下来一个项目,运行时候依赖关系报错,这时候需要更新
$ pod update
可能由于墙的的问题,无论是执行pod install还是pod update都卡在Analyzing dependencies不动了,慢到无以复加的地步,无法忍受。
其实原因在于以上两个命令执行时会升级CocoaPods的spec仓库,加一个参数可以省略这一步,然后速度就会提升不少。加参数的命令如下:
pod install --verbose --no-repo-update
pod update --verbose --no-repo-update
二、安装过的,直接cd到当前项目的父文件夹里。
1、pod init (查看你的项目同级目录下有没有Podfile,如果有说明成功了)。
2、pod search "第三方库名称" (之后把第三方库,粘贴到do 与 end 之间)。
3、Pod install (完成,就这么简单)。

三.CocoaPods的删除

如果你想要尝试在工程中安转cocoapods,那么网上的资料太多了,但是如果你想要删除掉cocoapods,那么怎么办呢,如果你不知道的话那么我告诉你吧!

   1. 删除工程文件夹下的Podfile、Podfile.lock及Pods文件夹

   2. 删除xcworkspace文件

   3. 使用xcodeproj文件打开工程,删除Frameworks组下的Pods.xcconfig及libPods.a引用

   4. 在工程设置中的Build Phases下删除Check Pods Manifest.lock及Copy Pods Resources及pods相关的事项

好了,这样你就把工程中的cocoapods删除了。
ps:如果将cocoapods集成到工程中后不小心修改或删除了其相关文件导致无法便以通过例如:不小心把Pods.xcconfig给删除了然后出现diff: /../Podfile.lock: No such file or directory,用上面的方法删除cocoapods后, 再重新$sudo pod install一下就好了。 上面的方法也适用于下载别人的代码,别人使用了cocoapods,也会经常出现上述问题,就可以用这个来解决了。 如果编译的时候出现权限问题,对工程文件夹$sudo chmod 777 path-to-project-folder/* $sudo chown 777 path-to-project-folder/* 即可。 四.cocoapods 错误原因   1.使用CocoaPods找不到头文件解决方法. (1)在TARGETS -> Build Settings -> User Header Search Paths 中 写入 ${SRCROOT} 再将后面参数改为recursive
(2) 工程中->PROJECT ->Architectures 中的Back SDK 要与pods PROJECT ->Architectures 一致.
(3)工程中->PROJECT ->Architectures Build Active Architecture Only 设置成YES,pods PROJECT ->Architectures Build Active Architecture Only 设置成NO(如果还报错设置成一致). 2.错误代码
ERROR: While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/update_rubygems 说明你的gem没有更新,解决办法 :更新gem sudo gem install -n /usr/local/bin cocoapods --pre 3.错误代码
[!] /usr/bin/git clone https://github.com/CocoaPods/Specs.git master
xcrun: error: active developer path ("/Applications/Xcode.app/Contents/Developer") does not exist, use `sudo xcode-select --switch path/to/Xcode.app` to specify the Xcode that you wish to use for command line developer tools (or see `man xcode-select`),你的电脑中有两个Xcode或是你的电脑升级到最新版需要重新设置下,解决办法如下: sudo xcode-select --switch Xcode所在路径/Contents/Developer/,如
sudo xcode-select --switch /Applications/Xcode\ 7.3.1.app/Contents/Developer/ 4 .Could not automatically select an Xcode project. Specify one in your Podfile like so: xcodeproj 'path/to/Project.xcodeproj' ,解决办法: 在你的Podfile文件中加入工程的路径,如
project '/Users/xingzai/Desktop/works/CIOTimes/iOS/xxx.xcodeproj' 5. ERROR: Could not find a valid gem 'cocoapods' (>= 0), here is why: $ gem sources --remove https://rubygems.org/
$ gem sources -a http://rubygems.org/
$ gem install cocoapods 6. cocoapods更新,(出现的错误sudo gem install cocoapods
ERROR: While executing gem ... (OpenSSL::SSL::SSLError)
hostname "upyun.gems.ruby-china.org" does not match the server certificate 提示为淘宝镜像源,升级可能会失败,貌似不能用了) 更新淘宝镜像
 (1.移除淘宝镜像源
gem sources --remove https://ruby.taobao.org/
 (2.添加新的镜像源
  gem sources -a https://gems.ruby-china.org
 (3.更新gem
  sudo gem update --system
 (4.更新cocoapods(sudo gem install cocoapods 或者 sudo gem install -n /usr/local/bin cocoapods --pre)
sudo gem install -n /usr/local/bin cocoapods --pre
 (5.查看版本
  pod --version 7.ERROR: SSL verification error at depth 1: unable to get local issuer certificate (20)
ERROR: You must add /C=IL/O=StartCom Ltd./OU=Secure Digital Certificate Signing/CN=StartCom Certification Authority to your local trusted store
ERROR: SSL verification error at depth 2: self signed certificate in certificate chain (19)
ERROR: Root certificate is not trusted (/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA) 出现这个问题的原因主要是Ruby环境需要2.2版本以上,所以要更新Ruby环境。 更新Ruby环境
0.首先要安装Homebrew终端输入这条命令即可/usr/bin/ruby -e "$(curl -fsSL
https://raw.githubusercontent.com/Homebrew/install/master/install)"
1.安装rvm$ curl -L get.rvm.io | bash -s stable
2.装载rvm$ source ~/.rvm/scripts/rvm
3.安装2.3.0版本ruby$ rvm install 2.3.0
4.将2.3.0设为默认$ rvm use 2.3.0 --default
证书错误问题
$ cd $rvm_path/usr/ssl
$ sudo curl -O http://curl.haxx.se/ca/cacert.pem
$ sudo mv cacert.pem cert.pem

  

五、cocoapods一些命令

六、升级 Ruby和安装Cocoapods

$ruby -v   // 查看当前版本
//安装rvm,ruby vision manager
$curl -L get.rvm.io | bash -s stable
//继续敲下面的两个命令
$source ~/.bashrc
$source ~/.bash_profile
//$rvm list known // 查看所有的ruby版本,如果有明确想升级的版本,可不查看
$rvm install 2.3.0 // 开始安装
//如果你安装过了cocoa pods ,这时进行pod命令是不成功的
$gem uninstall cocoapods
$gem install cocoapods
$pod setup
//ok

  

CocoaPods 哪些事的更多相关文章

  1. CocoaPods的安装和使用那些事(Xcode 7.2,iOS 9.2,Swift)

    Using The CocoaPods to Manage The Third Party Open-source Libaries 介绍 CocoaPods是用来管理你的Xcode项目的依赖库的.使 ...

  2. 【原】iOS:手把手教你发布代码到CocoaPods(Trunk方式)

    Change Log: 2015.08.20 - 添加podspec文件更新方法 2015.08.19 - 首次发布 概述 关于CocoaPods的介绍不在本文的主题范围内,如果你是iOS开发者却不知 ...

  3. 关于 《cocoapods 的taobao的镜像停止更新问题》

    cocoapods 的ruby.taobao.org 停止更新了!!!!!! 最近一直在改老项目,突然听伙伴说:cocoapods 的ruby.taobao.org 停止更新了.很是吃惊,遂即闯入:h ...

  4. CocoaPods使用 主要带图。转载。

    原文地址 快速更新,不需要查找更新库 命令:pod update  --verbose --no-repo-update 虽然网上关于CocoaPods安装教程多不胜数,但是我在安装的过程中还是出现了 ...

  5. MAC使用CocoaPods

    前言,還是那句話,按照濤叔下面畫黃色的步驟順序執行就好了 使用CocoaPods兩種方式:使用之前安裝的插件&命令行. 一.利用插件 1.創建項目后添加CocoaPods 2.在文本框中輸入如 ...

  6. CocoaPods安装使用及上传

    1.升级Ruby环境 sudo gem update --system 如果Ruby没有安装,请参考 如何在Mac OS X上安装 Ruby运行环境 2.安装CocoaPods时我们要访问cocoap ...

  7. 史上最详细的CocoaPods安装教程

    虽然网上关于CocoaPods安装教程多不胜数,但是我在安装的过程中还是出现了很多错误,所以大家可以照下来步骤装一下,我相信会很好用. 前言 在iOS项目中使用第三方类库可以说是非常常见的事,但是要正 ...

  8. Cocoapods的使用教程

    前言 对于iOS App的开发,几乎都采用了Cocoapods来管理第三方库,那么对于我们开发人员来说,这是必备技能,必须要掌握如何使用.这篇文章就是介绍如何安装和使用CocoaPods的. 这篇文章 ...

  9. CocoaPods 安装

    虽然网上关于CocoaPods安装教程多不胜数,但是我在安装的过程中还是出现了很多错误,所以大家可以照下来步骤装一下,我相信会很好用. 前言 在iOS项目中使用第三方类库可以说是非常常见的事,但是要正 ...

随机推荐

  1. 【C语言】C语言标识符

    目录: [定义]  [作用]  [命名规则]  [命名规范] 1.定义  标识符就是我们给函数或变量定义的名称.方便查阅增强可读性.减少沟通成本. 2.作用  · 增强可读性.  · 减少沟通成本. ...

  2. 拓展:使用终端创建、编译、链接OC…

    本文介绍一下如何使用Mac OS X自带终端快速创建.编译.链接OC程序. 1.打开终端 顺序:打开Finder——应用程序——实用工具——终端 2.打开需要存放 .m 文件的路径(比如我需要放到桌面 ...

  3. Mac终端常见命令

    Mac的使用 1.Finder资源管理器 Mac的硬盘不分区,只有一个根目录 2.系统偏好设置-控制面板 快捷键: 1.win下面的快捷键由ctrl换成common开头: commond+space ...

  4. iOS中的UI

    • 不管你是学习android开发还是iOS开发• 都建议先学习UI,原因如下:UI是app的根基:⼀一个app应该是先有UI界⾯面,然后在UI的基础上增加实⽤用功能 UI相对简单易学:UI普遍是学 ...

  5. 【Android疑难杂症】GridView动态设置Item的宽高导致第一个Item不响应或显示不正常的问题

    前言 这个问题在之前做一个盒子项目时遇到过,最近又遇到了,使用GridView遇到的非常奇葩的问题,这里记录分享一下. 声明 欢迎转载,但请保留文章原始出处:)  博客园:http://www.cnb ...

  6. IOS 音效

    IOS 音效 音效我们也可以成为短音频通常在程序中播放时间为1~2秒. 在应用程序中起到点缀效果,提升整体用户体验 音效文件只需要加载一次 示例代码: // // ViewController.m / ...

  7. Html5 dataset--自定义属性

    dataset--自定义属性 HTMLElement.dataset data-*属性集 元素上保存数据 <div id="user" data-id="12345 ...

  8. 关于NodeJS的思考

    对于NodeJS来说传统程序员比较陌生,初看以为是什么前端框架,其实并不是前端框架.传统的Javascript只能跑在浏览器中,但是一位叫Ryan Dahl的开发者灵感一来,为什么Javascript ...

  9. iis中限制访问某个文件或某个类型的文件配置方法

    Note:此处不是权限设置问题,此处不是权限设置问题,此处不是权限设置问题!只是出于数据或者网络安全,禁止扫描工具直接扫描到某些包含敏感信息的文件,尤其比如日志.配置等 默认ASP.NET已经考虑到了 ...

  10. sql server使用中遇到的问题记录

    一.sql server 不能连接远程服务器,但可以连接本地的数据库 我目前用的是sql server 2012 sp1,用着用着突然就不能连接远程服务器上的数据库了,崩溃了一天... 修复试了,卸载 ...