一、创建私有库
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. ASP.NET没有魔法——ASP.NET MVC 模型绑定

    在My Blog中已经有了文章管理功能,可以发布和修改文章,但是对于文章内容来说,这里缺少最重要的排版功能,如果没有排版的博客很大程度上是无法阅读的,由于文章是通过浏览器查看的,所以文章的排版其实与网 ...

  2. 简单谈谈python的反射机制

    转:http://www.jb51.net/article/87479.htm 本文主要介绍python中的反射,以及该机制的简单应用,熟悉JAVA的程序员,一定经常和Class.forName打交道 ...

  3. 使用Python查询JMX

    一.介绍 我们知道 java 项目中的 JMX 接口信息是十分有用的,我们可以提取这些信息来分析或告警.但是 JMX 的 API 只在 java 中实现,因此,找到一个 Python 代码调用 Jav ...

  4. python_print和input

    什么是输入? --用户从键盘.鼠标或其他终端 输入 的数据 -- input("提示信息") --python 2.7 rqw_input("提示信息") 如何 ...

  5. junit断言总结

    我们平时编写自己的测试类,如果没有断言,那么就没写测试的必要了. JUnit框架用一组assert方法封装了最常见的测试任务.这些assert方法可以极大地简化单元测试的编写. Assert类包含了一 ...

  6. asp.net core如何自定义端口/修改默认端口

    .net core运行的默认端口是5000,但是很多时候我们需要自定义端口.有两种方式 写在Program的Main方法里面 添加 .UseUrls() var host = new WebHostB ...

  7. 反向代理和HTTP重定向

    1.什么是正向代理(前向代理)? 在NAT技术(Network Address Translation)出现之前,所有主机无法直接与外网相连,要想上网,需要连接到一台能够访问外网的Web服务器,再通过 ...

  8. 树莓派小车By 树莓派爱好者ITJoker(通过python socket通信实现树莓派视频小车)(一)

    本文由树莓派爱好者ITJoker 编辑,转载请注明出处.本人也有新浪博客同样是树莓派爱好者ITJoker 所需材料:树莓派2B或者2B以上,L2985n驱动板,若干排线,电池及电池盒,usb无线网卡( ...

  9. Java 常用List集合使用场景分析

    Java 常用List集合使用场景分析 过年前的最后一篇,本章通过介绍ArrayList,LinkedList,Vector,CopyOnWriteArrayList 底层实现原理和四个集合的区别.让 ...

  10. Spring整合JMS(三)——MessageConverter介绍

    原文链接:http://haohaoxuexi.iteye.com/blog/1900937 1.4     消息转换器MessageConverter MessageConverter的作用主要有两 ...