CocoaPods再次入门

最近换了台新电脑,重新装了一下开发环境,踩了好多坑😂,感觉有必要写下来备用

1,什么是cocoapods

cocoapods是一个swift和OC应用依赖管理工具,上面有丰富的三方库并且大多数应用开发者都在使用。它是基于ruby(ruby是一种通用的面向对象的脚本语言)构建的,所以依赖于ruby环境,但是Mac OS中默认内置有ruby环境,并且也推荐使用默认的ruby环境去安装cocoapods。安装的过程需要使用到另外工具叫gem,什么是gem呢?

RubyGems(简称 gems)是一个用于对 Ruby组件进行打包的 Ruby 打包系统。 它提供一个分发 Ruby 程序和库的标准格式,还提供一个管理程序包安装的工具。Gem是一个管理Ruby库和程序的标准包,它通过Ruby Gem(如 http://rubygems.org/ )源来查找、安装、升级和卸载软件包,非常的便捷。

2,安装准备

  • 由于安装的时候是通过Gem源来查找和下载资源的,所以要保证我们的gem源稳定可达,关于gem源的操作有以下三个命令:
gem -v // 查看当前版本
gem sources -l   //查看当前所有的源  
gem sources -a https://gems.ruby-china.com     //  添加源
gem sources --remove https://rubygems.org/     // 移除源
  • 测试发现目前可用的源为https://gems.ruby-china.com 注意是com,不是org,需要事先利用命令移除和添加保证源为(如下图)
gem sources.png

3,安装pod

  • 利用gem命令开始安装cocoapods, 首先在命令行中输入
sudo gem install cocoapods
  • 如果提示权限错误,再次运行下面的命令
sudo gem install -n /usr/local/bin cocoapods
  • 过程会让输入账户密码, 也就是开机密码,密码的输入不会显示出来,输入之后回车就是
  • 安装过程可能会持续一段时间,但不会很长

4,验证是否安装成功

  • 可以通过如下命令查看pod是否安装成功,如果安装成功会返回已经安装的pod版本号
  pod --version 
  • 如果没有正确的返回版本号, 表示没有安装成功,根据错误提示和检查之前的步骤解决问题

5,初始化pod,下载依赖库

pod已经安装完成了,但是想正确使用的话,还需要下载一个重要的东西,就是pod Specs, 我们之所以能够找到我们想用的三方库,就是Specs的功劳,它维护了所有上传到pod中的三方库的位置和版本信息,pod search的正常使用依赖于它,所以我们安装好pod后,使用命令pod setup初始化一下。

  pod setup
  • 这一步会去GitHub上pod的Specs库下载一份到本地,所以对网络要求比较高。如果运气好的话很快就可以搞定, 如果运气不好的话有可能一两天都下不完。
  • 不过如果不想下载的话可以找一个已经下载好的Specs库放到自己对应的目录下也可以。具体这个Specs库可以复制别人的, 或者国内下载别人分享的。
  • 如果是想自己下载然后放到对应的目录下,有几个tips,mac下显示与隐藏隐藏文件的命令如下,可以更详细的查看pod的安装目录(如图)


    pod.png
  显示隐藏文件:defaults write com.apple.finder AppleShowAllFiles -bool true

  恢复隐藏命令:defaults write com.apple.finder AppleShowAllFiles -bool false
  电脑重启才能看到效果

  • 快速的到pod的安装目录 Command + Shift + G 打开前往文件,然后输入~/.cocoapods 回车

  • 如果安装完成后没有执行pod setup的情况下,第一次pod search的时候还是一样会去下载版本库, 所以最好是安装好之后直接setup一下。

6,测试初始化是否成功

  • 利用pod search 命令测试初始化是否成功,任意一个三方库看能否正确返回。
  • 如果提示如下错误
pod search AFNetworking
[!] Unable to find a pod with name, author, summary, or description matching `AFNetworking`

原因是可能是缓存文件的原因,这个时候可以利用命令删除缓存文件

rm ~/Library/Caches/CocoaPods/search_index.json

然后重新search, 这个时候会重新创建搜索索引(如图)


pod search.png

7,开始使用之创建podfile文件

  • podfile文件创建方式有两种思路,一种是cd到工程目录下然后利用vim创建,一种是cd到工程目录下利用命令pod init创建。 推荐使用pod init,利用pod init创建出来的pod file文件里面格式已经写好了,修改一下就ok
  • 当然也可以修改已经存在的podfile文件,然后放到工程根目录下即可。
  • podfile文件准备好后cd到工程根目录下执行命令pod install开始去下载三方库,过程快慢取决于网络。下载完成后之后再打开工程的话就需要打开XXX.xcworkspace文件了

8,使用注意点 pod install 和pod update的区别

  • 第一次使用install,之后使用update这种想法是错误的❌
  • pod install的使用场景是往项目中增加或者移除三方库的时候使用,使用该命令并不会影响其他的三方库
  • pod update用于更新指定或者所有三方库, 它回去比对远程和当前本地版本是否一样,如果不一样更新到最新的版本。

2019-12-18更新

今天更新CocoaPods到了1.8.4的版本, 该版本很大的不同就是不在需要在setup的时候去clone庞大的repo mater。为了加快setup和依赖分析的速度,使用了CDN取代之前的版本仓库https://github.com/CocoaPods/Specs.git,使用的时候按需请求数据,使用方式为首先在podfile文件中指定源

- source 'https://github.com/CocoaPods/Specs.git'
+ source 'https://cdn.cocoapods.org/'

然后移除之前的master repo

pod repo remove master

经测试发现新的CDN方式只会下载分析当前podfile中使用的三方库, 并且缓存在本地。

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

推荐阅读更多精彩内容

  • CocoaPods 是什么? CocoaPods 是一个负责管理 iOS 项目中第三方开源库的工具。CocoaPo...
    朝洋阅读 25,670评论 3 51
  • 项目组件化、平台化是技术公司的共同目标,越来越多的技术公司推崇使用pod管理第三方库以及私有组件,一方面使项目架构...
    swu_luo阅读 21,658评论 0 39
  • 一. CocoaPods的介绍 什么是CocoaPods?CocoaPods是一个负责管理iOS项目中第三方开源库...
    辉712阅读 3,922评论 0 7
  • 夏天的蝉鸣,越来越尖锐突兀了。 校园的生活,总算是要落幕了。 青春的色彩,越来越淡了。 我们总算明白毕业并不遥远,...
    青青子衿0917阅读 191评论 0 4
  • 我身倘四壁空空的屋内 宁愿赤裸着躯体 我含泪爱抚自己 刺创后逐渐愈合发痒的疤 想起一件事—— 多年都未能向你明确地...
    羊念阅读 292评论 0 0