4

Cocoapods整理(四)——搭建Cocoapods私有库环境


目录

  • 前言
  • 搭建Cocoapods私有库环境
  • 其他的一些技巧

前言

在懂得如何写podspec之后,我们来创建一个自己的私有库吧。在此之前我们先了解一下pod的工作过程。

clipboard.png

cocoapods其实就是利用所维护的podspec文件,在使用方和提供方之间建立一个桥梁;并利用与项目关联的Pod项目去维护所有三方库。

所以如果想要搭建Pod私有库环境,则需要创建一个类似于pod官方的repo库,让这个repo库去保存自己写的三方库的podspec文件。

以下均以我自己写的一个私有库ZCPKit去介绍。

搭建Cocoapods私有库环境

步骤:

1.创建一个私有的repo库
2.准备一个写好的podspec文件的三方库
3.校验三方库
4.向私有的repo库中提交podspec
5.更新repo
6.搜索该三方库进行验证

1> 创建私有的repo库

首先创建一个空的git仓库myrepo,然后使用下面的命令将其添加到repos中。

pod repo add [repo名] [repo git地址]
例如:
pod repo add myrepo https://git.coding.net/zcp164757979/myrepo.git

可以通过pod repo list命令验证是否添加成功。

clipboard.png

2> 准备一个写好的podspec文件的三方库

以上一节写好的ZCPKit为例

https://git.coding.net/zcp164757979/ZCPKit.git

需要注意的是:

1. 要记得将代码提交到远端
2. 要记得打tag,每个tag对应一个三方库版本
3. podspec文件中version的值要与git中的一个tag对应

clipboard.png

clipboard.png

3> 校验三方库

使用下面的命令进行校验:

pod spec lint
pod spec lint --allow-warnings 
// 此命令可以加参数,可使用pod spec lint --help查看所有参数

4> 向私有的repo库中提交podspec

使用下面命令进行提交:

pod repo push [repo名] [三方库podspec文件路径]
例:
pod repo push myrepo ZCPKit.podspec
pod repo push myrepo ZCPKit.podspec --allow-warnings
// 此命令可以加参数,可使用pod repo push --help查看所有参数

每一次提交相当于一个版本,podspec文件中的version要在git上有对应的tag才能提交成功。

clipboard.png

5> 更新repo

pod repo update [指定repo]
例如:
pod repo update // 更新所有repo
pod repo update myrepo // 更新指定repo

clipboard.png

6> 搜索该三方库进行验证

clipboard.png

其他的一些技巧

1> Podfile引入三方库的几种写法

首先附上官网针对这块的介绍:The Podfile

podfile最基本引入三方库的写法如下:

pod 'AFNetworking'
pod 'AFNetworking', '3.1.0'

此外还有其他几种引入三方库的写法:

// 指定三方库本地路径的写法(用于提交前进行测试)
pod 'AFNetworking', :path => '~/Desktop/AFNetworking'
// 指定git的写法
pod 'AFNetworking', :git => 'https://github.com/AFNetworking/AFNetworking.git'
pod 'AFNetworking', :git => 'https://github.com/AFNetworking/AFNetworking.git', :branch => 'dev'
pod 'AFNetworking', :git => 'https://github.com/AFNetworking/AFNetworking.git', :tag => '3.1.1'
pod 'AFNetworking', :git => 'https://github.com/AFNetworking/AFNetworking.git', :commit => '0f506b1c45'
// 指定podspec的写法
pod 'AFNetworking', :podspec => '~/Desktop/AFNetworking/AFNetworking.podspec'
// 指定subspecs的写法(这也是subspec的另一个用法)
pod 'MyThirdparty', '~> 0.0.1', :subspecs => ['Sparta', 'GotyeSDK', 'TalkingData', 'Tingyun', 'BaiduPanorama']

2> 调试私有库管理的三方库

使用上述的指定三方库本地路径的写法:

// 指定三方库本地路径的写法(用于提交前进行测试)
pod 'ZCPKit', :path => '~/Desktop/ZCPKit'

效果如下:

clipboard.png

需要注意的是:处于开发环境的三方库是通过引用方式导入项目,也就是说修改文件内容相当于修改源文件内容。而其他写法是将三方库文件copy一份导入项目中。

3> podspec生成json文件

pod ipc spec ZCPKit.podspec >> ZCPKit.podspec.json

回顾

Cocoapods整理(一)——安装Cocoapods
Cocoapods整理(二)——使用Cocoapods
Cocoapods整理(三)——编写podspec文件

本篇文章的repo demo:myrepo
私有库demo:ZCPKit

个人的repo:zcprepo
私有库:ZCPKit


参考文章:

使用Cocoapods创建私有podspec


花飞蝶舞剑
123 声望72 粉丝

Zcp大官人的iOS小站