现在,快速开发APP已经成为所有公司的需求,公司会在业务方法投入更多的时间来丰富APP的内容,而功能实现这个重担就压到了开发者的肩上。这时如果我们如果每个细节都自己傻楞的实现那结果可能只有两个:加班或者加班也做不完,然后被批。
大家一定听说过“不要重复造轮子”这句话,我们可以在程序适当的地方引入一些性能优良的第三方库(轮子)来帮我实现某些复杂或者繁琐的过程。这样我们就可以专心的“造车”了。
CocoaPods 简介
CocoaPods 是一个为Swift何Objective-C提供依赖项管理的工具,它拥有近2.6万个轮子可以为你的程序提供方便,有超过150万个程序通过它来管理依赖项。利用CocoaPods可以优雅的帮助你扩展你的项目。CocoaPods主页
安装CocoaPods
首先确保本机的 gem 工具可以使用,检测方法:打开终端输入
gem -v
如果报错:-bash: gem: command not found
这种的,说明ruby的环境出现问题,给大家推荐一篇文章安装ruby运行环境-
更换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/
更新gem 方法:在终端输入:
sudo gem update --system
需要升级时在升级成功后会提示: Latest version currently installed. Aborting.以上过程成功后,就可以开始安装CocoaPods了,方法:在终端输入:
sudo gem install cocoapods
这个过程有时会比较慢,需要等待。
如果出现了错误(在系统版本大于10.11时会出现) [zsh: command not found: pod] ,这时候我们继续执行:
sudo gem install -n /usr/local/bin cocoapods
初始化CocoaPods
pod setup
当出现如上错误时,执行:
pod repo update --verbose
以上的过程成功之后,安装就结束了。
使用CocoaPods
-
Podfile 的编写。使用CocoaPods的第一步,就是为你的程序定制一份量身的脚本,CocoaPods会根据你写的脚本来生成对应的依赖。
下面是个简单的例子:
第一个红框: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
如果为不同的target写不同的依赖项,就要按图中的方式分开写。其他更多的Podfile脚本写法见官方的文档 Podfile Syntax Reference
为你的程序添加依赖。进行如下操作。将第一步生成的Podfile文件放到你的程序目录下,于 xxxx.xcodeproj 同级,打开控制台,cd 到 Podfile文件路径下,然后执行
pod install
如果你写的Podfile脚本文件没问题的话,这步执行成功后会生成一个 xxxx.xcworkspace 文件,那么恭喜你依赖项已经添加成功了。如果未成功的话,脚本中有问题的地方会在控制台打印出来,修改之后,重复此步骤直到显示成功为止。更新依赖项。一旦install执行成功后,之后对Podfile文件修改后,直接执行:
pod update
就行了。打开xxxx.xcworkspace 文件,这里以后就是你开发的地方了。
CocoaPods需要被某个Target下的子工程依赖时
这种情况一般多在Frameworks或者静态库开发时。子工程并没有被添加到依赖。这时候我们需要做几个简单的操作。
- 找到主工程(Podfile添加依赖的Target)下的 Pods 目录,复制一份你需要Target的 Pods-APP.debug.xcconfig 文件。
这时,你会发现,引用不到的依赖项已经可以使用了。