一、创建私有库
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. python基础6之迭代器&生成器、json&pickle数据序列化

    内容概要: 一.生成器 二.迭代器 三.json&pickle数据序列化 一.生成器generator 在学习生成器之前我们先了解下列表生成式,现在生产一个这样的列表[0,2,4,6,8,10 ...

  2. CentOS 7安装Tomcat8

    一.安装环境 tomcat的安装依赖于Java JDK,需要先安装配置正确的JDK http://www.cnblogs.com/VoiceOfDreams/p/8376978.html 二.安装包准 ...

  3. 使用 ServiceAnt 更好地解耦你的程序

    今天要厚着脸皮给大家推荐一个自己做的通信中间件--ServiceAnt,目前已经在我们团队的两个产品线上投入了使用. ServiceAnt是什么 它最初的定位是ESB(企业服务总线),但目前还没有达到 ...

  4. mysql视图定义、原理、创建、使用

    定义: 视图是一个虚拟表,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据.但是视图并不在数据库中以存储的数据值集形式存在.行和列数据来自由定义视图的查询所引用的表,并在引用视图时 ...

  5. mybatis-databaseIdProvider多数据库支持

    <select id="selectPerson" parameterType="int" parameterMap="deprecated&q ...

  6. python装饰器的用法

    def logger(func):    def inner(*args, **kwargs): #1         print "Arguments were: %s, %s" ...

  7. impala集成sentry

    1.安装配置sentry 详细步骤见上一篇安装配置sentry. 2.配置impala 注:以下配置未集成kerberos安全认证 在/etc/imapla/conf目录下创建sentry-site. ...

  8. Linxu指令--date,cal

    在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的工作带来诸多方便. 1.命令格式: date [参数 ...

  9. Asp.net core 2.0.1 Razor 的使用学习笔记(一)

    环境:vs2017 版本:15.5.6 一.新建项目 1.文件>新建>项目>Visual c#>.NET Core>ASP.NET Core Web应用程序(“.NET ...

  10. Linux平台ORACLE INSTANT客户端安装

    下载安装文件 先去ORACLE官方网站下载所需版本的Instant Client Package 和 Instant Client Package - SQL*Plus安装包,(千万注意版本) htt ...