转载

Cocoapods私有库管理实现

本文为CocoaChina网友tanqilong2014投稿

简介:

下面将要介绍通过CocoaPods和git来维护我们私有的库.个人或公司在开发过程中,会积累很多可以复用的代码包,有些我们不想开源,又想像开源库一样在CocoaPods中管理它们,那么通过私有仓库来管理就很必要。

对于CocoaPods还不太熟悉的,建议到CocoaPods的官网看看:https://cocoapods.org/,或者百度谷歌查询下cocoapods一些常用的功能.

原理:

Cocoapods私有库管理实现

一.创建私有库

1.使用xcode建立新的工程,选择Cocoa Touch Static Library,取名为pod_test.

Cocoapods私有库管理实现

2.创建一个类PodTest,给PodTest添加一个类方法,使用后输出hello world

.h
#import
@interface PodTest : NSObject
+(void)test;
@end
  
.m
#import "PodTest.h"
@implementation PodTest
+(void)test {
    NSLog(@"hello world");
}
@end

Cocoapods私有库管理实现

3找一个能托管PodTest的git服务器,创建一个代码仓库用于管理PodTest

4.通过git服务器新建一个名字叫pod_test的Project

Cocoapods私有库管理实现

5.点击确定后,生成了一个用于管理pod_test的仓库,地址如图

Cocoapods私有库管理实现

6.打开git管理工具SourceTree,点击 +新仓库按钮,选择从URL克隆选项,将上面的仓库地址复制进去,选择好自己的目标路径和名称后点击克隆.

Cocoapods私有库管理实现

7.打开SourceTree关联的文件夹,将我们之前建立好的PodTest库整个全部拖进这个文件夹.

Cocoapods私有库管理实现

8.进入SourceTree,点击文件状态,将所有的改动全选后提交,再推送到git服务器.

9.将你需要某次修改打上一个tag,作为一个库的修改版本.

将对应某次修改点击右键标签

Cocoapods私有库管理实现

比如我要指定一个1.5版本,则在标签中写1.5,点击添加

Cocoapods私有库管理实现

效果如下,出现了一个牌子,则表明已经给这次修改打好了标签.

Cocoapods私有库管理实现

二.为spec仓库创建spec文件 (由于spec仓库我已创建好,所以只需要关系怎么往里加内容)

1.创建spec文件

打开终端输入

$cd ~/

进入到根目录后输入命令创建一个名字叫xl_test.podspec的描述文件

$pod spec create xl_test

通过vim进行编辑

$vim xl_test.podspec

清空全部内容

:%d

内容清空后点击i 进入编辑模式,输入以下内容

Pod::Spec.new do |s|
  s.name         = "xl_test" 
  s.version      = "1.5" #当前版本
  s.summary      = "xl_testa ad ha va " #描述
  s.homepage     = "https://github.com/goingta/MyPodDemo" #库文件主页地址
  s.license      = “caimao"
  s.author       = { "tanqilong" => "tanqilong@huobi.com" }  #k开发者
  s.source       = { :git => "http://git.caimaodev.com/tanqilong/pod_test.git", :tag => "1.5" } #文件的git地址,以及当前版本对应的tag,这个1.5就是我刚刚标注的
  s.source_files = 'PodTest/PodTest/*.{h,m}' #文件所在的目录,后面*.{h.m}是一个正则表达式,目录我下面会有解释
  s.resources    = 'PodTest/PodTest/*.xib' #资源文件所在的目录图片,xib等
  s.framework    = 'UIKit' #当前这个库所依赖的系统的库
  s.platform     = :ios
  s.requires_arc = true #是否支持arc
end

编辑好spec后对应效果如下

Cocoapods私有库管理实现

注意引号"别写成了”,按ESC 输入

:wq

回车推出vim回到终端.

我需要的资源目录如下

Cocoapods私有库管理实现

路径是已隐藏的.git为准开始拼接(PodTest.h是我临时多创建的,你不用创建)

2.进入终端后验证spec文件是否有效

$ pod spec lint xl_test.podspec --allow-warnings

如图

Cocoapods私有库管理实现 

有passed validating则表示spec文件验证通过了

三.给cocoapods添加私有repo

1.终端输入

$pod repo add mypod http://git.caimaodev.com/tanqilong/PrivateCocoapodsSpec.git

2.查看是否添加成功

$pod repo list

如果出现

master
- Type: git (master)
- URL:  https://github.com/CocoaPods/Specs.git
- Path: /Users/tanqilong/.cocoapods/repos/master
  
mypod
- Type: git (master)
- URL:  http://git.caimaodev.com/tanqilong/PrivateCocoapodsSpec.git
- Path: /Users/tanqilong/.cocoapods/repos/mypod

则表明添加成功,上面master是github用到的,下面mypod就是我们刚刚私有的.他们都讲用于管理描述库的spec文件

3.将xl_test.podspec文件添加到spec仓库和cocoapods

$ pod repo push mypod xl_test.podspec --allow-warnings

出现

Cocoapods私有库管理实现

则表明添加成功.

4.查询本地私有spec管理文件夹

$ open ~/.cocoapods/repos

会有2个文件夹,其中mypod就是我们刚刚关联上,双击打开就会看到我们刚刚加入的spec文件,以及各个版本对应的spec描述,不要轻易修改他.

四.引入私有库

到此我们已经部署好私有库所有的环境了,目前只需要向前一篇文章所讲的使用pod的方式引入就行了.

1.cd到前以前文章讲述时建立好的TestCocoaPods工程

$ cd ~/desktop/TestCocoaPods

2.查询是否有我们需要的私有库

$ pod search xl_test

3修改pod文件

打开TestCocoaPods工程,修改Pods文件如下

source 'https://github.com/CocoaPods/Specs.git'
source 'http://git.caimaodev.com/tanqilong/PrivateCocoapodsSpec.git'
platform :ios, '8.0'
  
target 'TestCocoaPods' do
pod 'xl_test', '~> 1.5'
end

4.成功后通过终端CD到工程目录

5.执行

$pod install

操作完毕,我们私有的库已经进入进去了.

正文到此结束
Loading...