博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
制作自己的CocoaPods(完善中)
阅读量:6720 次
发布时间:2019-06-25

本文共 1867 字,大约阅读时间需要 6 分钟。

通过CocoaPods,我们可以更加方便的管理自己平时用到的一些工具类或者库,平时我们接触最多都是一些开源的第三方库,它的制作和使用私有库制作存在一些区别。

1.CocoaPods原理和概念

CocoaPods是用来管理包的,它只负责存储代码一部分的信息,并不直接管理代码。所以我们需要两个仓库,一个是用来托管CocoaPods的配置文件,另一个用来存储代码。

工作原理

CocoaPods通过.podspec文件来搜索代码库,其所有配置文件托管在Master Repo。

概念

.podspec:该文件为代码库的描述文件,CocoaPods通过其中相关配置对Git代码库进行索引及下载。

熟悉了基本的概念,接下去上手操作:

2.制作支持CocoaPods的开源库

新建一个Git仓库用于存储代码

注意记得要选择MIT开源协议

关联本地代码

1.初始化Git仓库

git init复制代码

2.把文件添加到版本库中,使用git add .添加到暂存区中,不要忘记后面的小数点,意为文件夹下所有文件

git add .复制代码

3.使用git commit,把文件提交到本地仓库。引号内为提交说明

git commit -m '初始化Git仓库'复制代码

4、关联到远程库

git remote add origin 远程仓库地址复制代码

5、获取远程库与本地同步合并(如果远程库不为空必须做这一步,否则后面的提交会失败)

git pull --rebase origin master复制代码

6.将本地仓库代码推送到远程仓库(可跳过,放到后面推送)

git push origin master复制代码

查看远程仓库

将我们需要的代码放到工程中,后面需要上传到远程仓库。

制作CocoaPods

1.创建podspec文件并关联

pod spec create JXTestKit git@github.com:cooperAjx/JXTestKit.git复制代码

2.编辑podspec文件

3.本地验证

pod lib lint --allow-warnings复制代码

4.设置版本 CocoaPods需要版本号,设置版本号并将修改的部分再传到远程仓库

git tag 0.0.1git push --tags复制代码

5.远程验证

pod spec lint --allow-warnings复制代码

6.利用trunk将代码上传到CocoaPods repo

pod trunk push JXTestKit.podspec复制代码

7.成功后,搜索查看结果 由于忘了截推送成功的图,就不放图了,看下搜索成功的图

如果提示推送成功但是不能搜到,提示

删除~/Library/Caches/CocoaPods下的search_index.json,重新pod search就可以解决。

3.制作支持CocoaPods的私有库

创建一个远程私有库

这里用的码云,为什么要先选择开源,为的是MIT协议文件,你也可以一开始就选择私有,后面去其他的工程拷贝一份MIT协议就可以了,这个无伤大雅。

大体流程都和开源库的制作方式相同,区别在于,这次除了存放代码的Git仓库以外还需要一个存放CocoaPods配置文件的仓库。

创建Specs仓库

添加私有repo到CocoaPods中:

pod repo add JXPrivateTestKitRepo git@gitee.com:cooper_jx/JXPrivateTestKitRepo.git复制代码

创建podspec文件并关联

pod spec create JXPrivateTestKit git@gitee.com:cooper_jx/JXPrivateTestKit.git复制代码

远程验证

pod spec lint --private复制代码

提交Spec

pod trunk push JXPrivateTestKit.podspec复制代码

pod Search

使用私有框架时,需要添加repo地址到source

source 'git@gitee.com:cooper_jx/JXPrivateTestKitRepo.git'复制代码

补充

使用subspec对pods项目进行分层

pod install 之后可以看到有了明显的分层

参考文章

转载于:https://juejin.im/post/5b713c31e51d4566561cc8e7

你可能感兴趣的文章
一些题解
查看>>
bzoj2792
查看>>
data encryption
查看>>
UVA10692:Huge Mods
查看>>
动态加载js和css
查看>>
swift - UITextView的用法
查看>>
MarkdownPad基于语法示例
查看>>
区块链开发_比特币开发1
查看>>
幸福是一种感觉
查看>>
udp接收
查看>>
Linux批量处理文件脚本
查看>>
MVC之Ajax异步操作
查看>>
pwn学习(1)
查看>>
复习常用算法_冒泡算法
查看>>
reading/writing files in Python
查看>>
LCA 树链剖分
查看>>
JSP下载txt 和 Excel两种文件
查看>>
写在年尾
查看>>
找水王
查看>>
路过Haxe
查看>>