一、创建私有库
1、使用xcode建立新的工程,选择Cocoa Touch Static Library,取名为podTest

 
WechatIMG1172.jpeg

2、创建一个类PodTest,给PodTest添加一个类方法,使用后随意输出点啥

popTest.h

@interface podTest : NSObject

+ (void)NSLogHello;

@end

popTest.m

@implementation podTest

+ (void)NSLogHello{
NSLog(@"SHEEP HELLO");
} @end
 
WechatIMG1173.jpeg

3、找一个能托管PodTest的git服务器,创建一个代码仓库用于管理PodTest,再创建spec文件用来装各种私有库的podspec描述文件pop_spec

4、通过git服务器新建一个名字叫podTest的Project,管理仓po p_spec

 
WechatIMG1174.jpeg

同样创建pop_spec仓

 
WechatIMG1177.jpeg

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

 
WechatIMG1176.jpeg

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

 
WechatIMG1178.jpeg

打开终端,输入截图内容

 
WechatIMG1179.jpeg

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

 
WechatIMG1180.jpeg

8、进入SourceTree,点击文件状态,将所有的改动全选后提交,再推送到git服务器.
9.将你需要某次修改打上一个tag,作为一个库的修改版本.

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

 
WechatIMG1181.jpeg

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

 
WechatIMG1182.jpeg

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

 
WechatIMG1183.jpeg

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

打开终端输入

$cd ~/

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

pod spec create pan_popTest

通过vim进行编辑

vim pan_popTest.podspec

清空全部内容

:%d

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

Pod::Spec.new do |s|
s.name = "pan_popTest"
s.version = "1.0" #当前版本
s.summary = "pan-popTest a hello " #描述
s.homepage = "http://git.op.xywy.com/panjunfeng/popTest" #库文件主页地址
s.license = 'MIT'
s.author = { 'panjunfeng' => 'panjunfeng@xywy.com' } #开发者
s.source = { :git => 'git@git.op.xywy.com:panjunfeng/popTest.git', :tag => '1.0' } #文件的git地址,以及当前版本对应的tag,这个1.0就是我刚刚标注的
s.source_files = 'popTest/popTest/*.{h,m}' #文件所在的目录,后面*.{h.m}是一个正
则表达式,目录我下面会有解释
# s.resources = 'PodTest/PodTest/*.xib' #资源文件所在的目录图片,xib等,这个demo没有用到
s.framework = 'UIKit' #当前这个库所依赖的系统的库
s.platform = :ios
s.requires_arc = true #是否支持arc
end

退出
我需要的资源目录如下

 
WechatIMG1184.jpeg

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

pod spec lint pan_popTest.podspec --allow-warnings

如图

 
WechatIMG1185.jpeg

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

三.给cocoapods添加私有repo
1.终端输入

pod repo add pan_pod http://git.op.xywy.com/panjunfeng/popTest.git

2.查看是否添加成功

pod repo list

如果出现

 
WechatIMG1186.jpeg

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

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

pod repo push pan_pod pan_popTest.podspec --allow-warnings

出现

 
WechatIMG1187.jpeg

则表明添加成功.

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

open ~/.cocoapods/repos

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

四.引入私有库
1.cd到前以前文章讲述时建立好的TestCocoaPods工

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

pod search pan_popTest

3修改pod文件

platform :ios, '8.0'
source 'https://github.com/CocoaPods/Specs.git'
target 'check_PROJECT' do
source 'http://git.op.xywy.com/panjunfeng/popTest.git'
pod 'pan_popTest', '~> 1.0'
end

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

pod install

五、更新
执行一、8、9 将修改内容提交到git服务器,打上git
执行二、1、2
执行三、2、3、4

六、补充
移除私有repo

pod repo remove pan_pod

pop_spec仓 保存podspec描述文件,跟随更改就可以

在gitlab上面创建私有库的更多相关文章

  1. 利用Cocoapods、SVN 创建私有库实现方案(yoowei)

    由于项目年后要进行组件化,考虑到如果公司内部实现一些私有的组件,不对外公开,而又想在不同项目中使用,该怎么办呢? 使用Cocoapods制作私有库就完美的解决了这个问题.下图就是使用私有库带给我们的好 ...

  2. iOS代码组件化--利用cocoaPods创建私有库

    如果项目模块多,模块间逻辑复杂,我们发现多个人同时维护一个代码仓库需要十分小心,一不小心,造成冲突,解决起来很烦,相信很多人都遇到手工删除合并的冲突的文件的经历. 如果利用组件化思想,每个人维护自己的 ...

  3. gitLab创建自己的私有库

    一.创建私有库的流程简介 创建一个项目,留着后面的流程3制作私有库 在可以创建私有库的地方创建一个code repository, code repository是代码仓库,我们把代码上传到这个仓库. ...

  4. Cocoapods 创建自己的公开库、私有库

    如何创建自己的共有库 1.注册Trunk trunk需要CocoaPods 0.33版本以上,用pod --version 命令查看版本 CocoaPods版本 如果版本低,需要升级: sudo ge ...

  5. CocoaPods 创建私有仓库

    这里有个坑首先需要注意,创建私有cocoapods仓库需要两个git仓库,即代码仓库,Specs文件仓库. 一.创建私有库 1.创建自己源码仓库,假设是A.git; 2.对A仓库: git add . ...

  6. iOS 功能代码 上传到 远程 码云私有库

    推送代码到远程私有库 创建私有库(注意:仓库名称LYDKit必须和本地仓库对应的名称一样) 复制远程仓库的地址,打开终端,cd到对应的本地库路径下面 >>> cd /Users/cx ...

  7. iOS组件化开发入门 —— 提交自己的私有库

    前言:本人也是初次接触组件化开发,感觉现有的资料太繁杂,就简单整理了一下,在此跟大家分享一些入手的经验,主要就是描述cocoapods的私有库封装和提交.组件化开发是个大的议题,涉及到架构思路.设计模 ...

  8. composer如何自动验证并获取gitlab的私有库?

        近期购买了Laravel的nova以后,需要对它的核心代码做一些修改,为方便与团队其他成员分享,以及在nova官方库更新后方便对差异管理.便将nova库挂在自己的gitlab,通过compos ...

  9. Mac终端的Cocoapods创建自己的私有库和公有库

    一,前言 为什么要用Cocopods 通常在开发的过程中,大多时候,我们会处理一类相同的操作,比如对于字符串String的邮箱验证,是否为空,手机号验证,或者一些UIView的动画操作,我们为了避免写 ...

随机推荐

  1. 分享整理的免费API接口

    天气接口 聚合数据: http://op.juhe.cn/onebox/weather/query 用例 官方文档 来源:weather.com 百度接口: http://api.map.baidu. ...

  2. Hibernate 的原生 SQL 查询

    Hibernate除了支持HQL查询外,还支持原生SQL查询.         对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行Session.createSQLQuery()获取 ...

  3. Mac下用SSH连接远程Linux或Mac服务器

    1.打开Mac终端 2.切换到root登录 输入命令:sudo -i,然后输入本机密码 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px &qu ...

  4. eclipse代码编辑区字符串自动转义设置

    在做接口测试时,有时接口请求参数非常多,如果用java相关方法去拼接参数,难度较大,并且非常浪费时间,那如何快速将整个请求参数拼接成一个字符串呢?为了解决这个问题,只要简单配置下eclipse设置即可 ...

  5. Java 中的变量

    变量 Java 程序的变量大体可分为成员变量和局部变量. 局部变量 形参:在方法签名中定义的局部变量,由方法调用者负责为其赋值,随方法的结束而消亡. 方法内的局部变量:在方法内定义的局部变量,必须在方 ...

  6. JavaScript之点赞特效

    在很多网站中登录后可以对你说喜欢的文章.图片之类的进行点赞,这个功能效果的实现就是我今天要写的东西.代码不长,但觉得还是很有用的,为 js 给用户交互体验上更加友好.在实现过程中,主要的思路有: 点赞 ...

  7. Python 字符串大小写操作

    #coding=utf-8 #python中字符串的操作 # 字符串的大小写 s='hello_wOrld_oF_you' upper_str = s.upper() print('全部大写: ',u ...

  8. jdbc参数

    JDBC连接池参数:    jdbc.initialSize=0       //初始化连接    jdbc.maxActive=30     //连接池的最大数据库连接数,设为0表示无限制    j ...

  9. C# TCP 了解

    参考:http://www.jb51.net/article/118682.htm 一: TCP 粘包原理:发送方发送若干数据给接收方时粘成一包.从接收缓冲区看,后一包的头紧接前一包的数据的尾. 发送 ...

  10. Git的基本原理与常用命令[二]

    标签(linux): git 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 git 的四个区域 四种状态 常用命令 git add #加入暂存(索引区) git ...