iOS开发实战 - CocoaPods的使用

终端安装cocoapods

1.检查当前镜像

gem sources -l 

2.如果没有,则删除ruby镜像

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

3.如果删不掉

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

4.配置新镜像

gem sources -a https://gems.ruby-china.com/

5.更新库

sudo gem update —system

6.开始安装

sudo gem install -n /usr/local/bin cocoapods

注意:如果出现以下错误:说明当前ruby版本比较低,需要更新到 version >= 2.2.2, 去执行第6步的子步骤,否则直接执行第7步

6.1.安装 RVM baby 版本管理器
curl -L [get.rvm.io](http://get.rvm.io) | bash -s stable

等安装完成会出现下面这行提示:

 ` In case of problems: [https://rvm.io/helpandhttps://twitter.com/rvm_io](https://rvm.io/helpandhttps://twitter.com/rvm_io) `
6.2.执行
source ~/.bashrc  
source ~/.bash_profile  

测试是否安装正常

rvm -v  

会提示下面这行信息:

 ` rvm 1.27.0 (latest) by Wayne E. Seguin, Michal Papis[https://rvm.io/]
6.3.用RVM升级Ruby查看当前ruby版本 `
ruby -v 
rvm list known

提示如下:(中间显示部分省略)

# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-head] # security released on head
[ruby-]1.9.1[-p431]
……..
…….
# Mac OS X Snow Leopard Or Newer
macruby-0.10
macruby-0.11
macruby[-0.12]
macruby-nightly
macruby-head
# IronRuby
ironruby[-1.1.3]
ironruby-head
6.4.安装ruby 2.2.2 执行
rvm install 2.2.2
解决安装ruby遇到的问题

7.重新执行安装命令

sudo gem install -n /usr/local/bin cocoapods
pod setup 

这一步比较慢(大概需要半个小时),CocoaPods已经在后台同步第三方类库, 耐心等待!

如果没有看到如上图的进度信息,想确定后台是否正在更新,可以新建终端窗口(快捷键: cmd+t),输入以下命令:

cd ~/.cocoapods
du -sh 

pod setup的本质就是将https://github.com/CocoaPods/Specs上的Specs项目clone到/Users/用户名/.cocoapods/repos目录下。若此目录下已有Specs项目,则会将项目更新到最新的状态。由于Specs很大,容易导致pod setup失败。这时就需要我们手动安装Specs。若直接从github上下载zip文件,由于缺少git文件,会导致cocoapods不能使用。若用git clone,由于文件过大,容易导致失败。但是使用GitHub Desktop软件,则会提高clone的成功率,并且会给出clone的进度。更新本地pods库,更新过程可能有点慢。

安装成功!!!

8.卸载CocoaPods

sudo gem uninstall cocoapods

9.查看当前CocoaPods版本

pod --version

10.升级CocoaPods

//升级到最新的正式版
sudo gem install -n /usr/local/bin cocoapods
//升级到最新版(可升级到最新beta版)
sudo gem install -n /usr/local/bin cocoapods --pre
//升级到指定版本
sudo gem install -n /usr/local/bin cocoapods -v 1.6.1

CocoaPods 集成第三方库

一.客户端集成第三方库

只是界面化了终端添加第三方的步骤,还是需要预先通过终端在电脑上安装CocoaPods;不建议使用客户端,有时候会出问题。

使用方法:
http://blog.sina.com.cn/s/blog_133384b110102x1ee.html

二.终端集成第三方库

1.转到当前工程的Cocoapods文件夹

cd 文件夹路径(拖拽当前工程)

2.搜索你要加载的第三方框架

pod search 第三方库名

2.1 如果出现下面的错误:

 ` [!] Unable to find a pod with name, author, summary, ordescriptionmatching `AFNetworking` ` 

解决方案:

rm ~/Library/Caches/CocoaPods/search_index.json
pod search 第三方库名

2.2 如果结果没有出现该库的最新版本,执行:

pod repo update

3.新建文件 Podfile

pod init  

初始化pod (在项目文件夹下创建默认的 Podfile), 在本地工程中会生成一个保色的Podfile文件, 用来填写下载指令;
如果不用此方法创建Podfile文件夹,例如使用touch Podfile / vim Podfile 会创建一个没有内容的Podfile文件,所以这一步别省

4.编辑Podfile文件

vim Podfile

Podfile文件内容如下:

#最低支持的 iOS 版本
platform :ios, '8.0'

#添加第三方库的target
target '工程名' do
#框架列表
#如果指定版本号:
pod 'AFNetworking', '3.1.0'
#模糊指定版本号:
pod 'WechatOpenSDK', '~> 1.7'
#如果不指定版本号,会自动下载最新版本:
pod 'SDWebImage'
#我们可以直接指定某一个依赖的podspec,这样就可以使用公司内部的私有库
pod 'MyCommon', :podspec => 'https://yuantiku.com/common/myCommon.podspec'

end

1.带#的部分是注释,可以删除,将要下载的第三方信息粘贴在targetend之间(粘贴之前先进入编辑状态);
2.终端vim文件: 按 i 可编辑 ,esc 退出编辑,:wq 可保存退出,可粘贴多个第三方类(如果不进入编辑状态粘贴,会丢失要粘贴文本的部分信息)。

第5步和第6步只需执行其中一步

5.在项目中第一次使用CocoaPods, 进行安装的时候使用这个命令; 在Podfile中增加或删除某个pod后, 也是使用这个命令

pod install  

6.更新特定的pod时使用该命令

pod update  PODNAME

6.1 当运行pod update PODNAME时, CocoaPods将尝试查找PODNAME更新的pod版本, 会忽略掉Podfile.lock中已经存在的版本.
6.2 如果直接运行pod update, 没有指定PODNAME, CocoaPods会把Podfile中所有的pod都更新到最新版本.(如果已经是最新版本了, 则不更新)

7.预期用途

1.使用pod update PODNAME, 将只能更新特定的pod(检查是否存在新版本并相应地更新pod). 相反, pod install不会尝试更新已安装的pod的版本.
2.当向Podfile中添加一个pod时, 应该运行pod install, 而不是用pod update来安装这个新pod.
3.只有在想要更新特定pod(或所有的pod)的版本时才会使用pod update.

8.必须提交的 Podfile.lock

有时候可能你不想提交Pods目录到源代码管理中. 但是在多人开发的情况下, 一定要提交 Podfile.lock这个文件, 因为这个文件里面记录了你的Podfile中所有pod的版本信息. 为避免你的Podfile中的pod版本和别人的Podfile中的pod发生版本不一样的情况, 而导致出现函数找不到或者其他的错误.

9.关于 pod installpod update 的补充

正确的使用 pod install 和 pod update
不更新 podspec:
在执行pod update时,会默认先更新一次podspec索引。使用--no-repo-update参数可以禁止其做索引更新操作。如下所示:

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

10.更新-错误信息(如果没出错,请跳过该步骤)

错误1:

解决办法:

cd /Users/lanouhn/Desktop/UISenior-CocoaPods 
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

错误2:

` CocoaPods was not able to update the `master` repo 错误 `
错误2

解决办法:

方法一:快速更新本地pod库(更新本地cocoapods的spec资源配置信息),比较耗时
pod repo update 
pod install
或者 pod install --repo-update  
方法二:快速更新当前pod管理的库, 较快
//只会更新当前工程pod中管理的库,不更新pod本地库(不会去把cocoaPods管理的库全部更新到本地)
pod update --verbose --no-repo-update  
方法三:快速更新当前pod管理的库,最快
//快速列出当前pod管理的分支,如果错误提醒提示`master` repo 错误 `,就只去更新 master 分支就行了,其他分支同理
pod repo list
pod repo update master
pod repo list

注意:虽然上述命令会解决当前问题,但又会衍生出其他问题,如果出现上述情况,先执行pod setup 再执行 pod update
解决办法:在终端使用pod update命令,更新SDK, 不可加入 --no-repo-update 参数,若添加后仅从本地Cocoapods库中查找SDK,不再更新线上SDK。如果本地存在SDK会直接使用本地SDK版本(不是线上最新版本),若本地不存在SDK会产生错误。 也不建议使用 pod install命令,此命令不会更新最新版本SDK。

11.️安装过CocoaPods的工程选取以下文件运行程序

12.导入头文件,

使用 #import <name>;大多数使用#import "name"
Cocoapods 1.6.0 后可使用@import name;

13.增、删、改 第三方库

vim Podfile

在target "工程名" do和end 之间编辑

添加:增加一条对应的pod语句:pod 'AFNetworking', '3.1.0'
(如果这样写:pod 'AFNetworking', '~> 3.1.0',每次会自动更新到最新版本)
删除:直接把这一条语句移除
更新:直接修改对应的版本号
完成之后退出,执行第5步/第6步️

更新指定的库
pod update MJRefresh
更新指定的库

14.生成第三方库的帮助文档

# 使用Objective-C的文档生成工具:appledoc

//生成第三方库的帮助文档,并集成到 Xcode 中:
brew install appledoc

15.移除工程中的CocoaPods

1.删除工程文件夹下的PodfilePodfile.lockxcworkspacePods文件夹


2.打开xcodeproj文件,删除项目中的Pods文件夹及Pods.xcconfig引用和libpods.a


3.打开Build Phases选项,删除Check Pods Manifest.lockCopy Pods Resources

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,830评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,992评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,875评论 0 331
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,837评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,734评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,091评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,550评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,217评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,368评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,298评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,350评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,027评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,623评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,706评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,940评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,349评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,936评论 2 341

推荐阅读更多精彩内容