基础-简介

1. CocoaPods简介

CocoaPods是一个用来帮助我们管理iOS第三方依赖库的工具。它可以解决库与库之间的依赖关系,目的是让我们能自动化的、集中的、直观的管理第三方开源库。

CocoaPods的安装和使用

CocoaPods是用Ruby实现的,要想使用它首先需要有Ruby的环境。幸运的是OS X系统默认的已经可以运行Ruby了,因此我们只需要执行以下命令:

$ sudo gem install cocoapods
$ pod setup 

① 执行完install命令半天没反应

原因是Ruby的默认源使用的是cocoapods.org,国内访问这个网址有时候会有问题,请替换成Ruby China的源,命令如下:

$ gem sources --remove https://rubygems.org/ 
$ gem sources -a https://gems.ruby-china.org/ 

要想验证是否替换成功了,可以执行:

$ gem sources -l 

正常的输出是:

*** CURRENT SOURCES *** 
https://gems.ruby-china.org/

② gem版本过老

gem是管理Ruby库和程序的标准包,如果它的版本过低也可能导致安装失败,解决方案自然是升级gem,执行下述命令即可:

$ sudo gem update --system 

③ pod setup等待时间太久

pod setup在执行时,CocoaPods会将托管在https://github.com/CocoaPods/Specs上面的所有项目的Podspec文件更新到~/.cocoapods/目录下,这个文件很大,所有第一次更新会非常慢。方法是直接手动下载到本地,操作如下:

$ git clone https://git.coding.net/CocoaPods/Specs.git ~/.cocoapods/repos/master --progress

使用

创建Podfile文件

在Xcode项目的根目录下执行命令创建Podfile文件,操作如下:

$ pod init

Podfile文件的格式如下:

source 'https://github.com/CocoaPods/Specs'  #源的下载地址

platform :ios, '7.0'                         #支持的ios系统最低版本

pod 'JSONKit', '~> 1.4'                      #第三方库以及版本号

target 'XBPodSDK' do                         #项目的target
    # use_frameworks!
end

上面的格式比较简单,查看更多详情,请跳转到链接Podfile介绍

注意:Podfile文件中加入“use_frameworks!”表示打包成framework动态库(ios8之前是静态库),如果没有这个配置,则最终打包成.a静态库

安装依赖库

Podfile文件创建完成后,在当前的工程目录下,执行命令来安装依赖库:

$ pod install

注意:使用CocoaPods生成的.xcworkspace文件来打开工程

更新依赖库

当依赖的第三方库升级新版本后,如果Podfile文件指定库为最新版本或者不指定版本,都会更新到最新版。

① 全部更新

如果要使Podfile文件中所有的库都更新到指定版本,需要执行命令如下:

$ pod update

注意:用“~>”指定的版本是一个范围,并不是特定版本,所有会产生误解(自己指定了版本,为什么pod update会更新到更高的版本)。为了防止这种情况,可以使用“<=”来指定版本。

直接执行pod update命令,有时会比较慢,这是因为pod会更新本地的版本库,添加参数可以取消更新版本库,如下:

$ pod update --no-repo-update

注意:这种情况需要保证本地版本库最新。

② 更新指定库

如果想只更新某个依赖库,可以在pod update后面加上库名,如下:

$ pod update [LIB_NAME] #库的名称

查找第三方库

如果不知道cocoaPods管理的库中,是否有想要的库,可以通过pod search命令进行查找,以下是用pod search json查找到的所有可用的库:

-> JSON (5.0.0)
   JSON made so simple, it hurts
   pod 'JSON', '~> 5.0.0'
   - Homepage: https://github.com/3lvis/JSON
   - Source:   https://github.com/3lvis/JSON.git
   - Versions: 5.0.0, 5.0.0-beta1, 4.0.2, 4.0.1, 4.0.0, 3.1.0, 3.0.0, 2.1.1, 2.1.0, 2.0.0 [master repo]

-> json-parser-swift (0.2.0)
   JSON parser & tokenizer in pure Swift
   pod 'json-parser-swift', '~> 0.2.0'
   - Homepage: https://github.com/webconnex/json-parser-swift
   - Source:   https://github.com/webconnex/json-parser-swift.git
   - Versions: 0.2.0, 0.1.1, 0.1.0, 0.0.2, 0.0.1 [master repo]
   
//... 以下省略若干行

Podfile.lock作用

在开始使用CocoaPods,执行完pod install之后,会生成一个Podfile.lock文件,每次执行pod update也会更新Podfile.lock文件。

作用

Podfile.lock文件最大得用处在于多人开发,保证团队中每个人使用的依赖库的版本一致

CocoaPods管理私有库

创建私有 Spec Repo

Spec Repo介绍

Spec Repo是所有的Pods的一个索引,就是一个容器,所有公开的Pods都在这个里面,它实际是一个远端的Git仓库,当你使用了Cocoapods后它会被clone到本地的~/.cocoapods/repos目录下,可以进入到这个目录看到master文件夹就是这个官方的Spec Repo了。这个master目录的结构是这个样子的

.
├── Specs
    └── [SPEC_NAME]
        └── [VERSION]
            └── [SPEC_NAME].podspec

你可能感兴趣的:(基础-简介)