<不要重复造轮子 第一篇>搞定CocoaPods


现在,快速开发APP已经成为所有公司的需求,公司会在业务方法投入更多的时间来丰富APP的内容,而功能实现这个重担就压到了开发者的肩上。这时如果我们如果每个细节都自己傻楞的实现那结果可能只有两个:加班或者加班也做不完,然后被批。

大家一定听说过“不要重复造轮子”这句话,我们可以在程序适当的地方引入一些性能优良的第三方库(轮子)来帮我实现某些复杂或者繁琐的过程。这样我们就可以专心的“造车”了。


CocoaPods 简介

CocoaPods 是一个为Swift何Objective-C提供依赖项管理的工具,它拥有近2.6万个轮子可以为你的程序提供方便,有超过150万个程序通过它来管理依赖项。利用CocoaPods可以优雅的帮助你扩展你的项目。CocoaPods主页

安装CocoaPods

  1. 首先确保本机的 gem 工具可以使用,检测方法:打开终端输入

    gem -v

    如果报错:-bash: gem: command not found 这种的,说明ruby的环境出现问题,给大家推荐一篇文章安装ruby运行环境

  2. 更换ruby的软件源(国内网络问题导致)。方法:在终端输入:

    gem sources -l 查看当前ruby的源
    gem sources --remove https://rubygems.org/ 移除当前ruby的源
    gem sources -a https://ruby.taobao.org/ 设置ruby的新源
    gem sources -l 再次查看当前ruby的源

    下面结果就证明ruby的软件源已经设置OK了。

      *** CURRENT SOURCES ***
      https://ruby.taobao.org/
    
  3. 更新gem 方法:在终端输入:

    sudo gem update --system

    需要升级时在升级成功后会提示: Latest version currently installed. Aborting.

  4. 以上过程成功后,就可以开始安装CocoaPods了,方法:在终端输入:

    sudo gem install cocoapods

    这个过程有时会比较慢,需要等待。
    如果出现了错误(在系统版本大于10.11时会出现) [zsh: command not found: pod] ,这时候我们继续执行:

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

  5. 初始化CocoaPods

    pod setup

101.png

当出现如上错误时,执行:

pod repo update --verbose

以上的过程成功之后,安装就结束了。

使用CocoaPods

  1. Podfile 的编写。使用CocoaPods的第一步,就是为你的程序定制一份量身的脚本,CocoaPods会根据你写的脚本来生成对应的依赖。
    下面是个简单的例子:

    102.png

    第一个红框:platform :ios 和第二个红框 '6.0' 这行脚本的意思是指定依赖项的平台是iOS平台,最低支持的版本是 iOS 6.0. 当然这里可以根据不同的平台和最低支持的版本不同而修改,比如我的程序是 为watchOS 2.0写的, platform :watchos, '2.0'
    第三个红框 target 'DoIt' do 这行脚本的意思是:为程序中的 DoIt 这个target添加依赖项,以end结尾
    第四个红框 pod 'CocoaLumberjack', '~> 2.4.0' 就是真正的依赖项了, 它写到这里意思是: 为 'DoIt' 添加 CocoaLumberjack这个第三方库,而且版本 在 2.4.0 - 2.5.0之间,且不包含2.5.0
    ‘~>’这个符号的意思就是不大于这个小版本的意思。同样,还有 = , > , >= , < , <= 这5种符合,意思同符号。
    如果想查找一些依赖项,并查看它有什么可用版本的时候,可以利用pod提供的检索功能:
    pod search CocoaLumberjack
    103.png

    如果为不同的target写不同的依赖项,就要按图中的方式分开写。

    其他更多的Podfile脚本写法见官方的文档 Podfile Syntax Reference

  2. 为你的程序添加依赖。进行如下操作。将第一步生成的Podfile文件放到你的程序目录下,于 xxxx.xcodeproj 同级,打开控制台,cd 到 Podfile文件路径下,然后执行

    pod install

    如果你写的Podfile脚本文件没问题的话,这步执行成功后会生成一个 xxxx.xcworkspace 文件,那么恭喜你依赖项已经添加成功了。如果未成功的话,脚本中有问题的地方会在控制台打印出来,修改之后,重复此步骤直到显示成功为止。

  3. 更新依赖项。一旦install执行成功后,之后对Podfile文件修改后,直接执行:
    pod update就行了。

  4. 打开xxxx.xcworkspace 文件,这里以后就是你开发的地方了。

CocoaPods需要被某个Target下的子工程依赖时

这种情况一般多在Frameworks或者静态库开发时。子工程并没有被添加到依赖。这时候我们需要做几个简单的操作。

  1. 找到主工程(Podfile添加依赖的Target)下的 Pods 目录,复制一份你需要Target的 Pods-APP.debug.xcconfig 文件。

104.png
2. 将该文件放到子工程的目录下,可以换个名字,并将该文件添加到Target中。点击该文件,修改图中红框的 PODS_ROOT 值,该值为当前子项目到主项目的 Pods文件夹 的相对路径。

105.png
3. 在Xcode中点击子项目->点击 PROJECT 下的工程 -> 点击ConfigurationsDebugRelease 的下拉框,之后的配置里选择该 pods.xcconfig文件。

106.png

这时,你会发现,引用不到的依赖项已经可以使用了。

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

推荐阅读更多精彩内容

  • 项目组件化、平台化是技术公司的共同目标,越来越多的技术公司推崇使用pod管理第三方库以及私有组件,一方面使项目架构...
    swu_luo阅读 21,208评论 0 39
  • CocoaPods 是什么? CocoaPods 是一个负责管理 iOS 项目中第三方开源库的工具。CocoaPo...
    朝洋阅读 25,593评论 3 51
  • 一. CocoaPods的介绍 什么是CocoaPods?CocoaPods是一个负责管理iOS项目中第三方开源库...
    辉712阅读 3,905评论 0 7
  • 前章 酆都城阎罗殿里,十位阎罗王破天荒的全部聚齐。脸色阴沉的怒视着大殿当中下跪的一青一红两个瑟瑟发抖的鬼将。 大殿...
    喵叔不吃鱼阅读 201评论 0 0
  • 随着各类娱乐社交软件的兴起,传统电商在淘宝天猫卖家市场逐渐饱和的情况下,不得不另谋出路。 而微信很适时的推出了小程...
    心和合阅读 641评论 0 0