CocoaPods 哪些事
一.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 哪些事的更多相关文章
- CocoaPods的安装和使用那些事(Xcode 7.2,iOS 9.2,Swift)
Using The CocoaPods to Manage The Third Party Open-source Libaries 介绍 CocoaPods是用来管理你的Xcode项目的依赖库的.使 ...
- 【原】iOS:手把手教你发布代码到CocoaPods(Trunk方式)
Change Log: 2015.08.20 - 添加podspec文件更新方法 2015.08.19 - 首次发布 概述 关于CocoaPods的介绍不在本文的主题范围内,如果你是iOS开发者却不知 ...
- 关于 《cocoapods 的taobao的镜像停止更新问题》
cocoapods 的ruby.taobao.org 停止更新了!!!!!! 最近一直在改老项目,突然听伙伴说:cocoapods 的ruby.taobao.org 停止更新了.很是吃惊,遂即闯入:h ...
- CocoaPods使用 主要带图。转载。
原文地址 快速更新,不需要查找更新库 命令:pod update --verbose --no-repo-update 虽然网上关于CocoaPods安装教程多不胜数,但是我在安装的过程中还是出现了 ...
- MAC使用CocoaPods
前言,還是那句話,按照濤叔下面畫黃色的步驟順序執行就好了 使用CocoaPods兩種方式:使用之前安裝的插件&命令行. 一.利用插件 1.創建項目后添加CocoaPods 2.在文本框中輸入如 ...
- CocoaPods安装使用及上传
1.升级Ruby环境 sudo gem update --system 如果Ruby没有安装,请参考 如何在Mac OS X上安装 Ruby运行环境 2.安装CocoaPods时我们要访问cocoap ...
- 史上最详细的CocoaPods安装教程
虽然网上关于CocoaPods安装教程多不胜数,但是我在安装的过程中还是出现了很多错误,所以大家可以照下来步骤装一下,我相信会很好用. 前言 在iOS项目中使用第三方类库可以说是非常常见的事,但是要正 ...
- Cocoapods的使用教程
前言 对于iOS App的开发,几乎都采用了Cocoapods来管理第三方库,那么对于我们开发人员来说,这是必备技能,必须要掌握如何使用.这篇文章就是介绍如何安装和使用CocoaPods的. 这篇文章 ...
- CocoaPods 安装
虽然网上关于CocoaPods安装教程多不胜数,但是我在安装的过程中还是出现了很多错误,所以大家可以照下来步骤装一下,我相信会很好用. 前言 在iOS项目中使用第三方类库可以说是非常常见的事,但是要正 ...
随机推荐
- Android自带的theme
android:theme="@android:style/Theme.Dialog" 将一个Activity显示为能话框模式 android:theme="@andro ...
- 好推二维码如何通过应用宝微下载支持微信自动打开APP下载?
好推二维码 官网 http://www.hotapp.cn 1. 为什么使用应用宝微下载? APP下载二维码,通过微信扫描下载的时候,微信目前只支持应用宝微下载,才能在微信里直接打开下载,否则就需要在 ...
- UIButton的titleEdgeInsets属性和imageEdgeInsets属性实现图片文字按要求排列
button可以设置 titleEdgeInsets属性和 imageEdgeInsets属性来调整其image和label相对位置,具体参考http://stackoverflow.com/ques ...
- UITableViewController和延时执行、自定义控件
1.在UITableViewController中,self.view就是self.tableView, 两个对象的指针地址是一样的 2.自定义类继承UITableViewCell, 重写父类方法 / ...
- hybrid app
hybrid app Hybrid App(混合模式移动应用)是指介于web-app.native-app这两者之间的app,兼具“Native App良好用户交互体验的优势”和“Web App跨平台 ...
- sql 如果关联表 没有值 设置 默认值
SELECT *FROM ( SELECT t.task_name, t.status AS task_status, coalesce( r.task_ref_id, 999 ) AS task_ ...
- PlantUML的实例参考
project: blog target: plant-uml-instances.md date: 2015-12-24 status: publish tags: - PlantUML - UML ...
- JavaScript Patterns 4.10 Curry
Function Application apply() takes two parameters: the first one is an object to bind to this inside ...
- 今天说一下 Group by 这个东西
group by 这个关键字,这个语句太平凡了~基本上只要有报表的地方,就会有它的身影. 常规用法就是 INSERT INTO #TypeValue ( TypeID, Col2 ) , N , N ...
- cal 命令
cal命令是linux里面查看日历的一个命令,效果如下: [root@localhost ~]# cal 十月 日 一 二 三 四 五 六 我们可以的很形象的从日历上看出今天是哪年,哪年的哪天,周几, ...