一.创建私有库的流程简介
二.创建的详细流程 1.创建一个项目,留着后面的流程3制作私有库 1)在这里我们选择用Cocoa Touch Static Library创建一个新的工程,取名为JXTool
2)删除掉默认的.h和.m文件,加入自己已经准备好的工具类,最后主要就是用这个工具类去制作的私有库,这里简便起见就只是执行打印了 #import <Foundation/Foundation.h> @interface logTest : NSObject - (void)test; @end #import "logTest.h" @implementation logTest - (void)test { NSLog(@"test111111"); } @end
2.在可以创建私有库的地方创建一个code repository(代码仓库), 一个spec repository(配置仓库) 这里我使用的是gitlab,除了gitlab之外还可以使用github(私有需要收费) 、开源中国、CODING、Bitbucket、CSDN code都可以,但这里使用gitlab来介绍所有的操作 1)点击右上角的加号按钮,创建代码仓库名为JXCodeRep
2)同上面方法,创建配置仓库名为JXSpecRep,所以此时除了名字不同外,其他都一样 .所以这里建议使用不同的仓库名字来区别这两个不同作用的仓库
3.克隆code repository到本地并添加步骤1中的私有库代码文件,上传所有文件到远端的库中并打tag 1)打开git管理工具SourceTree,点击新建按钮,选择从URL克隆选项,将上面的远程代码仓库地址复制进去,选择好自己的目标路径和名称后点击克隆
2)这时候第一次克隆下来的文件夹是没有东西的(这里不算隐藏文件)
因此别忘了按照gitLab官网进行下面操作,打开终端,在默认的路径下就行
3)拉取远程代码仓库,将我们之前步骤1中建立好的整个项目全部拖进这个文件夹替换README.md
4)进入SourceTree,点击文件状态,将所有的改动全选后提交,再推送到git服务器.将你需要某次修改打上一个tag 1.0,作为一个库的修改版本.注意::别忘了,勾选上"推送标签",这个非常重要
4.创建并编辑三个私有库配置文件 1)创建和编辑README.md、创建和编辑LICENSE(我在这里就不创建这两文件了,只是简单说下创建方法) 这个文件在github中也有,是项目的说明文件,根据自己的项目做一些说明.打开终端,cd到工具类文件所在的路径下
2)创建和编辑.podspec文件(这步最容易出错) 打开终端输入 cd ~/ 为了后续私有库的维护,建议名字和工具类所在项目名一样,进入到根目录后创建一个名字叫JXTool.podspec的文件 pod spec create JXTool
准备通过vim进行编辑 vim JXTool.podspec 先别按下 i进入编辑模式,清空全部内容 :%d 内容清空后点击i 进入编辑模式,输入以下内容 Pod::Spec.new do |s| s.name = "JXTool" s.version = "1.0" #当前版本 s.summary = "JXTool a hello " #描述 s.homepage = "http://git.op.xywy.com/liunian/JXCodeRep.git" #库文件主页地>址 s.license = 'MIT' s.author = { 'liunian' => 'liunian@xywy.com' } #开发者 s.source = { :git => 'git@git.op.xywy.com:liunian/JXCodeRep.git', :tag => '1.0' } #文件的git地址,以及当前版本对应的tag,这个1.0就是我刚刚标注的 s.source_files = 'JXTool/JXTool/*' #文件所在的目录,后面*是一个正则表达式,目录我下面会有解释 # s.source_files = 'JXTool/JXTool/*.{h,m}' #文件所在的目录,后面*.{h.m}是一个正则表达式,目录我下面会有解释 # s.resources = 'JXTool/JXTool/*.xib' #资源文件所在的目录图片,xib等,这个demo没有用到 s.framework = 'UIKit' #当前这个库所依赖的系统的库 s.platform = :ios s.requires_arc = true #是否支持arc end 退出编辑esc,保存 :wq 3)进入终端后验证.podspec文件是否有效 pod spec lint JXTool.podspec --allow-warnings 有passed validating则表示spec文件验证通过了
5.创建'本地的私有仓库'文件
1)使用下面的命令就可以在本地生成配置文件的仓库,建议这个本地的名字也和远程的一致,这样便于区分和后期的维护. pod repo add JXSpecRep http://git.op.xywy.com/liunian/JXSpecRep.git 2)查看是否添加成功 pod repo list 如果出现了JXSpecRep,则代表添加成功
或者返回桌面command+shift+G查询本地配置仓库管理文件夹 ~/.cocoapods/repos
6.将配置文件push到远端专门存储配置文件的仓库中
1)将配置文件push到远端专门存储配置文件的仓库中 ,本地的也会同步更新 pod repo push JXSpecRep JXTool.podspec --allow-warnings 2)出现下面信息,则代表成功
或者查询本地私有spec管理文件夹,看到了JXTool则代表成功 open ~/.cocoapods/repos
3)可以在远端仓库中看到这个文件,并且远端配置文件仓库中有且只有这一个文件
7.确认已经制作完成并使用 1)查询是否有我们需要的私有库 pod search JXTool
2)新建一个项目后,初始化pod pod init 编辑Podfile文件 vim Podfile 在合适的地方pod我们的私有库 source 'http://git.op.xywy.com/liunian/JXSpecRep.git' pod 'JXTool', '1.0' cd到项目的路径下 pod install
3)导入头文件,使用工具类
大功告成! 三.补充 下面主要讲述在同一台笔记本操作,也就是还保留着之前所有相关本地的文件 1.更新私有库 1)参照上面步骤3将私有库克隆下来,然后进行工具类代码的修改,重新提交到远程仓库,并设置标签,例如2.0,即再执行一遍步骤3的1)和4) 修改的地方 #import "logTest.h" @implementation logTest - (void)test { NSLog(@"test222222"); } @end 2)编辑.podspec文件,我这里是同一台笔记本还有原先的文件,所以不用再次创建了,直接编辑 vim JXTool.podspec 修改下面的信息,即所有1.0的地方都修改成最新的标签2.0 Pod::Spec.new do |s| s.name = "JXTool" s.version = "2.0" #当前版本 s.summary = "JXTool a hello " #描述 s.homepage = "http://git.op.xywy.com/liunian/JXCodeRep.git" #库文件主页地>址 s.license = 'MIT' s.author = { 'liunian' => 'liunian@xywy.com' } #开发者 s.source = { :git => 'git@git.op.xywy.com:liunian/JXCodeRep.git', :tag => '2.0' } #文件的git地址,以及当前版本对应的tag,这个1.0就是我刚刚标注的 s.source_files = 'JXTool/JXTool/*' #文件所在的目录,后面*是一个正则表达式,目录我下面会有解释 # s.source_files = 'JXTool/JXTool/*.{h,m}' #文件所在的目录,后面*.{h.m}是一个正则表达式,目录我下面会有解释 # s.resources = 'JXTool/JXTool/*.xib' #资源文件所在的目录图片,xib等,这个demo没有用到 s.framework = 'UIKit' #当前这个库所依赖的系统的库 s.platform = :ios s.requires_arc = true #是否支持arc end 后面的步骤依然和之前的一样,参照上面的步骤,参照上面的步骤4.3)
见到JXTool (2.0)极为成功 3)将配置文件push到远端专门存储配置文件的仓库中,参照上面的步骤6
见到上面的则为成功 4)确认已经制作完成并使用 编辑原先测试demo的Podfile文件,pod update之后运行看结果
终于大功告成!!!!
由于我是第一次去主动在gitlab上创建私有库,查了很多资料都不是很详细,看了也是迷糊的很,所以特别抽空研究了一番,结合几篇别人的文章,自动亲手实践,最后整理成这篇笔记,可能对于熟悉创建私有库的人来说废话很多,很冗余,但是真心希望能帮助和我一样的新手,一起学习。 (责任编辑:IT) |