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

2、创建一个类PodTest,给PodTest添加一个类方法,使用后随意输出点啥
popTest.h
@interface podTest : NSObject
+ (void)NSLogHello;
@end
popTest.m
@implementation podTest
+ (void)NSLogHello{
NSLog(@"SHEEP HELLO");
}
@end

3、找一个能托管PodTest的git服务器,创建一个代码仓库用于管理PodTest,再创建spec文件用来装各种私有库的podspec描述文件pop_spec
4、通过git服务器新建一个名字叫podTest的Project,管理仓po p_spec

同样创建pop_spec仓

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

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

打开终端,输入截图内容

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

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

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

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

二.为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
退出
我需要的资源目录如下

2.进入终端后验证spec文件是否有效
pod spec lint pan_popTest.podspec --allow-warnings
如图

有passed validating则表示spec文件验证通过了
三.给cocoapods添加私有repo
1.终端输入
pod repo add pan_pod http://git.op.xywy.com/panjunfeng/popTest.git
2.查看是否添加成功
pod repo list
如果出现

则表明添加成功,上面master是github用到的,下面mypod就是我们刚刚私有的.他们都讲用于管理描述库的spec文件
3.将xl_test.podspec文件添加到spec仓库和cocoapods
pod repo push pan_pod pan_popTest.podspec --allow-warnings
出现

则表明添加成功.
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上面创建私有库的更多相关文章
- 利用Cocoapods、SVN 创建私有库实现方案(yoowei)
由于项目年后要进行组件化,考虑到如果公司内部实现一些私有的组件,不对外公开,而又想在不同项目中使用,该怎么办呢? 使用Cocoapods制作私有库就完美的解决了这个问题.下图就是使用私有库带给我们的好 ...
- iOS代码组件化--利用cocoaPods创建私有库
如果项目模块多,模块间逻辑复杂,我们发现多个人同时维护一个代码仓库需要十分小心,一不小心,造成冲突,解决起来很烦,相信很多人都遇到手工删除合并的冲突的文件的经历. 如果利用组件化思想,每个人维护自己的 ...
- gitLab创建自己的私有库
一.创建私有库的流程简介 创建一个项目,留着后面的流程3制作私有库 在可以创建私有库的地方创建一个code repository, code repository是代码仓库,我们把代码上传到这个仓库. ...
- Cocoapods 创建自己的公开库、私有库
如何创建自己的共有库 1.注册Trunk trunk需要CocoaPods 0.33版本以上,用pod --version 命令查看版本 CocoaPods版本 如果版本低,需要升级: sudo ge ...
- CocoaPods 创建私有仓库
这里有个坑首先需要注意,创建私有cocoapods仓库需要两个git仓库,即代码仓库,Specs文件仓库. 一.创建私有库 1.创建自己源码仓库,假设是A.git; 2.对A仓库: git add . ...
- iOS 功能代码 上传到 远程 码云私有库
推送代码到远程私有库 创建私有库(注意:仓库名称LYDKit必须和本地仓库对应的名称一样) 复制远程仓库的地址,打开终端,cd到对应的本地库路径下面 >>> cd /Users/cx ...
- iOS组件化开发入门 —— 提交自己的私有库
前言:本人也是初次接触组件化开发,感觉现有的资料太繁杂,就简单整理了一下,在此跟大家分享一些入手的经验,主要就是描述cocoapods的私有库封装和提交.组件化开发是个大的议题,涉及到架构思路.设计模 ...
- composer如何自动验证并获取gitlab的私有库?
近期购买了Laravel的nova以后,需要对它的核心代码做一些修改,为方便与团队其他成员分享,以及在nova官方库更新后方便对差异管理.便将nova库挂在自己的gitlab,通过compos ...
- Mac终端的Cocoapods创建自己的私有库和公有库
一,前言 为什么要用Cocopods 通常在开发的过程中,大多时候,我们会处理一类相同的操作,比如对于字符串String的邮箱验证,是否为空,手机号验证,或者一些UIView的动画操作,我们为了避免写 ...
随机推荐
- 系列3|走进Node.js之多进程模型
文:正龙(沪江网校Web前端工程师) 本文原创,转载请注明作者及出处 之前的文章"走进Node.js之HTTP实现分析"中,大家已经了解 Node.js 是如何处理 HTTP 请求 ...
- Selenium自动化测试脚本中三种等待时间简介
为了提高脚本的稳定性,我们需要在脚本中增加等待时间 第一种:强制等待 Thread.sleep():固定休眠时间设置,Java的Thread类里提供了休眠方法sleep,导入包后就能使用 sleep( ...
- 修改ncnn的openmp异步处理方法 附C++样例代码
ncnn刚发布不久,博主在ios下尝试编译. 遇上了openmp的编译问题. 寻找各种解决方案无果,亲自操刀. 采用std::thread 替换 openmp. ncnn项目地址: https://g ...
- Java this 关键字的用法
this 关键字的用法 this 在类中就是代表当前对象,可以通过 this 关键字完成当前 对象的成员属性.成员方法和构造方法的调用. 那么何时用 this? 当在定义类中的方法时,如果需要调用该类 ...
- linux运维学习
export 和unset 设置和取消变量 echo 的双引号和单引号的区别:双引号里的会被替换,单引号里的都会直接输出.
- duilib消息类型
//定义所有消息类型 ////////////////////////////////////////////////////////////////////////// #define DUI_MS ...
- 重拾Python(1):使用Anaconda搭建Python开发环境(Windows7)
1.为什么选择Anaconda? Anaconda解决了Python使用痛点. Python好用但是令人头疼的就是库管理与Python不同版本的问题,特别是Windows环境下. 2.什么是Anaco ...
- scala 小结(一)
Scala 是什么?(What is scala?) 引用百度百科对于scala的定义: Scala是一门多范式的编程语言,一种类似java的编程语言,设计初衷是实现可伸缩的语言.并集成面向对象编 ...
- js万亿级数字转汉字的封装方法
要求如图: 实现方法: function changeBillionToCN(c) { // 对传参进行类型处理,非字符串进行转换 if(typeof(c) != "string" ...
- WTF小程序之wxs
前言 对于从VUE过来的前端同学来说,见到小程序的第一眼一定是熟悉-感觉就像是把vue的单文件拆成了3个文件.但是,随着慢慢入坑.马上会发现,这样怎么不行?wxs文件又是什么鬼?template和vu ...