思路:创建一个是远程私有spec仓库与本地私有spec仓库,也就是两个检索库,其他的和远程仓库没有太大的区别,区别是比远程公有仓库多两个检索库
总体内容
- 1、创建 远程私有Spec仓库与本地 Spec Repo检索库
- 2、创建Pod私有库所需要的项目工程文件,并上传到私有仓库
- 3、创建Pod所对应的podspec文件, 并进行验证/测试
- 4、创建JKCIOBase版本,并提交代码代码到JKCIOBase的远程仓库
- 5、向私有的Spec Repo中提交podspec和远程私有spec仓库提交
- 6、使用pod库来测试远程私有库的使用
- 7、远程私有库与其他公有的混合使用
- 8、远程私有库分支
- 9、远程私有库添加依赖库
- 10、远程私有库内容更新
- 11、其他组内成员如何使用?
一、创建 远程私有Spec仓库与本地 Spec Repo检索库,远程的spec文件存在码云的私有仓库
- 1.1、在 码云 创建私有的spec仓库,取名为JKCIOSpecs,一定要选择私有,不然谁都可以看到就没有什么意义了
在码云创建自由的spec仓库,取名为JKCIOSpecs - 1.2、在本地添加一个spec仓库
-
(1)、查看本地spec路径
查看本地spec路径pod repo
-
(2)、查看帮助信息,可以看到能够添加本地spec仓库的提示
查看帮助信息,可以看到能够添加本地spec仓库的提示pod repo --help
-
(3)、开始在本地添加spec仓库
具体的代码如下: JKCIOBase是本地spec仓库的名字,名字你自己可以随意取,git@gitee.com:JKWC/JKCIOSpecs.git
是我们上面在码云创建的远程spec仓库的ssh
路径,本地和远程关联起来pod repo add JKCIOBase git@gitee.com:JKWC/JKCIOSpecs.git
添加后的效果如下
相比之前多了一个JKCIOBase,也就是我们创建的本地私有spec仓库command + shift +G 输入 ~/.cocoapods/repos
-
提示:如果你的公钥与私钥没有配置,那就设置下,在终端输入下面的代码,之后最后出现下图
ssh-keygen
- 去电脑上的 个人->
.ssh
文件夹里面复制id_rsa.pub
的内容到码云(在码云个人设置里面添加公钥),也可以使用快捷键:command + shift +G 输入 ~/.ssh
进入到 ssh文件里面
`command + shift +G 输入 ~/.ssh` - 小提示:
.ssh
是隐藏文件,可以用command+shift+.
让隐藏文件显示出现,复制完记得再次输入command+shift+.
让隐藏文件关闭,切记不要轻易删除任何隐藏文件
-
-
(4)、查看添加后的效果,在终端输入下面代码
pod repo
-
二、创建Pod私有库所需要的项目工程文件(我们还在码云创建)
-
2.1、我在码云创建的CIO时代的基础组件与功能组件库:
我在码云创建的CIO时代的基础组件与功能组件库: `JKCIOBase`JKCIOBase
-
2.2、把
JKCIOBase
克隆到本地,创建一个文件夹JKRemoteLocal
# 1、 cd导入路径 cd 进入到JKRemoteLocal文件夹 # 2、git clone 仓库到本地:clone自己仓库的地址 git clone https://gitee.com/JKWC/JKCIOBase.git
-
2.3、在本地
在本地 `JKRemoteLocal/JKCIOBase` 文件夹里面创建一个 `JKCIOBase`文件夹,同时创建一个`JKCIOBaseDemo`项目,与刚才创建的JKCIOBase同一个目录JKRemoteLocal/JKCIOBase
文件夹里面创建一个JKCIOBase
文件夹,同时创建一个JKCIOBaseDemo
项目,与刚才创建的JKCIOBase同一个目录
-
2.4、在与JKCIOBaseDemo 同级的文件夹JKCIOBase里面,我又创建了一个文件夹JKCategory,里面拖入了一个UIView的分类
UIView+JKLayout
三、创建Pod所对应的podspec文件, 并进行验证
-
3.1、在与JKCIOBaseDemo同目录下创建文件
JKCIOBase.podspec
cd 进入到JKCIOBase
提示:JKCIOBase 是第一个文件夹,也就是 JKCIOBase与JKCIOBaseDemo所在的文件夹
-
3.2、创建spec文件
pod spec create JKCIOBase
-
3.3、修改spec文件,下面是我修改的内容
Pod::Spec.new do |s| s.name = "JKCIOBase" s.version = "0.0.2" s.summary = "JKCIOBase." s.description = "JKCIOBase是CIO时代的基础组件,后续还会继续增加" s.homepage = "https://gitee.com/JKWC/JKCIOBase" s.license = "MIT" s.author = { "JoanKingWC" => "JoanKingWC@163.com" } s.ios.deployment_target = "8.0" s.source = { :git => "https://gitee.com/JKWC/JKCIOBase.git", :tag => "#{s.version}" } s.source_files = 'JKCIOBase/**/*.{h,m}' s.requires_arc = true end
提示:
`s.homepage`写JKCIOBase在码云的首页
1、s.summary
要比s.description
短
2、s.homepage
写JKCIOBase在码云的首页
3、s.source
写JKCIOBase
的代码地址即可
`s.source`写 `JKCIOBase `的代码地址即可
4、s.source_files
不要写错,这里的路径是以 spec所在的目录开始寻找的,也就是以JKCIOBase.podspec
所在的目录开始寻找, JKCIOBase与JKCIOBase.podspec
同级目录,取JKCIOBase下所有文件夹与.h
和.m
文件s.source_files = 'JKCIOBase/**/*.{h,m}'
-
3.4、远程验证spec文件是否符合规则
pod spec lint JKCIOBase.podspec
提示:如果报错就看下我在远程公有库博客里面对于验证spec文件有问题的处理
四、创建JKCIOBase版本,并提交代码代码到JKCIOBase的远程仓库
-
4.1、
cd JKCIOBase.podspec
所在的目录cd JKCIOBase.podspec所在的目录
-
4.2、创建版本 tag: 要与
JKCIOBase.podspec
里面的版本号保持一致git tag '0.0.1'
-
4.3、提交版本号
git push origin 0.0.1
提示:如果你提交tag失败了,请关联仓库,后面加你的仓库地址,切记是代码仓库地址,不是远程spec仓库地址
git remote add origin https://github.com/JoanKing/JKGCDTimer.git
-
4.4、提交本地JKCIOBase的内容
打开Xcode,在 `Source Control` 里面 `commit` 选择同时提交到远程 `JKCIOBase`仓库
打开Xcode,在Source Control
里面commit
选择同时提交到远程JKCIOBase
仓库
五、向私有的Spec Repo中提交podspec和远程私有spec仓库提交
-
5.1、在
三
里面我们已经验证过 spec文件是符合规定的,向私有的Spec Repo中提交 spec文件pod repo push JKCIOBase JKCIOBase.podspec
提示:如果你在验证的时候有警告,只要没有报错可以加上
--use-libraries --allow-warnings
,如下:
向私有的Spec Repo中提交 spec文件pod repo push JKCIOBase JKCIOBase.podspec --use-libraries --allow-warnings
-
5.2、我们验证下是否成功
进入本地 JKCIOBase 仓库,上面的没有报错,在JKCIOBase里面出现JKCIOBase仓库就是成功了,JKCIOBase里面会存着每个版本的spec文件,这里展示了
0.0.2
版本的spec
文件
我们验证下是否成功command + shift +G 输入 ~/.cocoapods/repos
-
5.3、远程私有spec仓库提交
其实写这个5.3是多余的,因为在5.2里面,我们把spec文件提交到本地的时候,同时也就提交到了我们创建的远程 spec仓库,也就是我们在1.1
创建的JKCIOSpecs
,我们看下JKCIOSpecs
里面,存放也是spec的各个版本,如下图
六、使用pod库来测试远程私有库的使用
-
6.1、在桌面创建一个项目
JKRemoteLocalTest
-
6.2、创建Podfile文件
cd JKRemoteLocalTest文件夹 pod init
-
6.3、修改 Podfile文件的内容
source 'git@gitee.com:JKWC/JKCIOSpecs.git' platform :ios, '9.0' target 'JKRemoteLocalTest' do use_frameworks! pod 'JKCIOBase' end
提示:
source 'git@gitee.com:JKWC/JKCIOSpecs.git'
是远程spec仓库的地址,不可少,因为pod 'JKCIOBase'
是要从 source资源里面去找spec文件来下载相应的版本的 JKCIOBase -
6.4、查看导入的效果
JKCIOBase成功导入
七、远程私有库与其他公有的混合使用
-
7.1、如下 Podfile文件 内容,导入
SDWebImage
是不会成功的source 'git@gitee.com:JKWC/JKCIOSpecs.git' platform :ios, '9.0' target 'JKRemoteLocalTest' do use_frameworks! pod 'JKCIOBase' pod 'SDWebImage' end
-
7.2、解决
7.1
导入SDWebImage
不成功的问题-
分析 SDWebImage 是属于pod 公有库的资源,在
source 'git@gitee.com:JKWC/JKCIOSpecs.git'
是不可能找到的,所以要在公有库的资源里面寻找,查看公有库资源路径
pod repo查看spec路径pod repo
-
如下写 Podfile 文件才是正确的
source 'git@gitee.com:JKWC/JKCIOSpecs.git' source 'https://github.com/CocoaPods/Specs.git' platform :ios, '9.0' target 'JKRemoteLocalTest' do use_frameworks! pod 'JKCIOBase' pod 'SDWebImage' end
-
-
-
7.3、查看导入远程私有库与公有库的效果
查看导入远程私有库与公有库的效果
八、远程私有库分支
- 8.1、这个有关分支的问题,我在远程共有库已经阐述过了这里我就在
JKCIOBase
添加一个JKKit
在`JKCIOBase `添加一个JKKit - 8.2、在spec文件里面设置一下
JKCategory
与JKKit
分支的东西
`JKCategory`与`JKKit`分支
-
8.3、把版本改为
0.0.6
,打tag提交代码如下# cd 进入spec所在的目录 cd 进入 JKCIOBase所在的目录,也就是spec文件所在的目录 # 打0.0.6的tag git tag '0.0.6' # 提交 tag到 远程私有仓库 git push origin 0.0.6 # 使用xcode提交代码到远程仓库
-
8.4、提交spec文件到本地私有spec仓库(也就是我们创建的JKCIOBase)
提交spec文件到本地私有spec仓库(也就是我们创建的JKCIOBase)pod repo push JKCIOBase JKCIOBase.podspec --use-libraries --allow-warnings
-
8.5、在使用
查看是否提交成功command + shift +G 输入 ~/.cocoapods/repos
里面的JKCIOBase
就可以看到里面多了一个新的版本,我这里提交的是0.0.6
-
8.6、测试一下是否设置分支成功
cd 进入上面测试`JKRemoteLocalTest` # 更新库 pod update
九、远程私有库添加依赖库
- 9.1、给
JKCIOBase
添加依赖库'AFNetworking'
与'MJRefresh'
,给JKKit
添加一个依赖库Masonry
给`JKCIOBase`添加依赖库 `'AFNetworking'`与`'MJRefresh'`,给`JKKit`添加一个依赖库 `Masonry` - 9.2、打tag,提交spec等等和
八
里面的一样,不再写了 - 9.3、查看是否依赖第三方库成功。同样更新
JKRemoteLocalTest
依赖第三方库成功
十、远程私有库内容更新
远程私有库内容更新的更新其实和八
里面一样的步骤,修改JKCIOBase里面的内容,更改spec内的版本号,有要修改的就修改内容,打版本tag,提交tag到远程私有仓库,提交spec文件打破本地spec仓库与远程私有spec检索仓库
网友评论