14.创建属于自己的远程私有组件库

2019-07-16  本文已影响0人  枫之叶_小乙哥

1.代码托管平台创建spec的私有库

这里我使用的是coding, 网址是: https://coding.net.

1.1 创建一个spec的索引私有库, 填写相关信息


Snip20190716_1.png Snip20190716_2.png

1.2最后点击创建项目.

2.本地生成公钥秘钥

2.1电脑选择, 前往->个人->.ssh文件
2.2查看发现, 只有一个known_hosts文件
2.3打开cmd, 输入

ssh-keygen

2.4然后会提示

// 成功生成本地公钥秘钥 
Generating public/private rsa key pair.

// 以下三个选项可以输入enter设置
Enter file in which to save the key (xxxx): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 

2.5再次查看, 前往->个人->.ssh文件


[图片上传中...(Snip20190716_4.png-4c0e76-1563248485707-0)]

3.在代码托管平台绑定公钥

3.1在个人设置中,选择SSH公钥


[图片上传中...(Snip20190716_6.png-bc2621-1563248815346-0)]

3.2新增公钥


Snip20190716_6.png

3.3将步骤2本地生成的公钥( id_rsa.pub文件 ), 用xcode打开拷贝到下面指定位置, 点击添加


Snip20190716_7.png

3.4输入密码后, 会显示添加成功

4.在本地添加spec的私有索引库

4.1 查看本地所有的索引库
打开cmd, 输入

pod repo

会显示pod的公有库master

Snip20190716_8.png

4.2 添加自己的远程私有索引库
打开cmd, 输入

// XXX是myPrivateSpecBase的SSH地址, 在托管仓库中拷贝地址
pod repo add myPrivateSpecBase XXX

4.3检查是否添加本地私有索引库成功

打开cmd, 输入

pod repo

你会发现, 除了master外, 多了一个私有的索引库

4.4 移除索引库,可以输入

pod repo  remove myPrivateSpecBase

至此, 本地私有spec索引库已经添加成功

5.在代码托管平台, 创建远程代码托管仓库, 步骤和上面的步骤1相同

Snip20190716_10.png

6.创建本地组件库

6.1在本地创建远程仓库文件夹, 然后打开cmd, 定位到该文件夹

6.2在cmd输入pod lib create MyComponents , 创建本地模板库

pod lib create MyComponents 

填写以下模板信息

Snip20190716_13.png

6.2再次查看6.1生成的文件夹, 会显示

Snip20190716_15.png Snip20190716_18.png [图片上传中...(Snip20190716_21.png-c0934e-1563251584503-0)] Snip20190716_21.png

本地组件代码编译成功后, 准备提交到托管平台前,一定要修改spec文件信息, tag 和进行spec的合理性测试.

s.source 的地址一定要使用https的, 不能使用SSH的地址
Snip20190716_23.png

6.4 定位到组件库, 检测spec是否填写正确

cd /Users/xxx/Desktop/xcode工程/ZGKFMBase_respec/remoteLib/MyComponents 

// 检查spec是否填写正确
pod spec lint
Snip20190716_24.png

上述报错, 是没有给组件打上tag
解决方法:上传代码 + 打上tag

git status
git add .
git commit -m '修改'

// 查看是否有绑定仓库
git remote

// 添加仓库 myOrigin(第一次添加,需要添加仓库)
git remote add myOrigin https://git.xxxxxxx/MyComponents.git

// 推送代码
git push myOrigin master
// 

描述:向github仓库推送时(git push origin master),出现如下错误:​

error: 无法推送一些引用到 'https://github.com/yourname/youname.github.io.git'

提示:更新被拒绝,因为远程版本库包含您本地尚不存在的提交。这通常是因为另外​​​​ ​

提示:一个版本库已向该引用进行了推送。再次推送前,您可能需要先整合远程变更 ​

提示:(如 'git pull ...')。​​​ ​

提示:详见 'git push -- help' 中的 'Note about fast-forwards' 小节。​

解决方案:​​

git push -u origin +master​

强行更新。具体为什么,没研究。

// git强行更新
git push -u origin +master

6.5上传代码到远程仓库后, 需要打标签

// 查看已有版本标签
git tag

// 打标签0.2.0
git tag '0.2.0'

// 推送tag
git push --tags
// 如果上面的不行,则使用下面的( git push + 仓库 + --tags )
git push myOrigin master --tags

// 

6.6至此,本地组件库已经创建成功, 并推送到远程托管平台

7.将spec推送到自己私有的索引库

7.1 对同级目录下的spec文件进行合理性检测

pod spec lint

以下是检测成功:

Snip20190716_25.png

7.2 , 将spec推送到自己私有的索引库(spec被推送到私有索引库后, 会向上推向到pod的远程索引库)

// 查看本地索引库
pod repo

// 将spec推送到自己私有的索引库
pod repo push myPrivateSpecBase MyComponents.podspec

下面就是已经推送成功的提示:

Snip20190716_26.png

推送成功后, 会自动更新本地私有索引库

7.3 查看本地私有库是否添加spec成功
路径: (用户 -> .cocoapods -> ..... )


Snip20190716_32.png

7.4 查看远程私有库是否添加spec成功


Snip20190716_30.png Snip20190716_31.png

7.5 pod search 查找(完美)


Snip20190716_33.png

8. 项目中使用pod, 将私有组件加入

8.1 在安装私有库的组件时,要指定源source, 否则安装不成功

Snip20190716_34.png

pod install 后报错

所以, 要在cmd, 输入pod repo, 找到分别的源地址source, 指定优先安装私有索引库指定的组件

一定要设置私有和公有的source, 如果只设置私有库source, 公有库的AFNetWorking就安装不了了.

[图片上传中...(Snip20190716_36.png-b3aa39-1563261909469-0)] Snip20190716_36.png
// 查看本地索引库, 可以从中查找到源source
pod repo

至此, 已经完成了自己的远程私有组件库.

9. 重点总结

// 9.1 本地生成公钥秘钥
ssh-keygen

// 9.2本地添加自己的远程私有索引库
//  XXX是myPrivateSpecBase的SSH地址, 在托管仓库中拷贝地址
pod repo add myPrivateSpecBase XXX
// 9.3在cmd输入pod lib create MyComponents , 创建本地模板库
pod lib create MyComponents 
// 9.4git强行更新
git push -u origin +master
// 9.5推送tag,则使用下面的( git push + 仓库 + --tags )
git push myOrigin master --tags
// 9.6spec合理性检查
pod spec lint
// 9.7将spec推送到自己私有的索引库
pod repo push myPrivateSpecBase MyComponents.podspec

本地组件代码编译成功后, 准备提交到托管平台前,一定要修改spec文件信息, tag 和进行spec的合理性测试.

上一篇下一篇

猜你喜欢

热点阅读