[otc]
概念逻辑梳理
- 创建私有库过程中,涉及的仓库 分为 远程代码仓库 和 远程podspec仓库地址, 本地代码仓库 和 本地 podspec仓库.
- 实现逻辑步骤
- 先创建远程的podspec仓库(如已经有podspec库,忽略这一步)
- 本地创建私有库代码仓库(pod lib create), 添加代码文件与资源文件
- 创建存放私有库代码文件的远程代码仓库地址,并将本地code仓库地址关联到远程代码仓库地址
- 修改podspec文件配置,设置好源码仓库地址,并给源码添加对应的tag推送到远程代码仓库(如果是版本号由tag控制的情况下)
- 验证库是否可用,推送到远程podspec仓库. pod repo push 命令将代码库中的podspec文件推送到本地以及远程的podspec仓库,完成.
在第4、5步完成 podspec仓库与代码仓库的关联.
创建Spec Repos
- 创建远程私有仓库
前往代码托管服务平台创建私有仓库
2.关联远程仓库(如本地没有,则本地创建私有仓库)
pod repo add [私有库] [远程库 url]
本地私有仓库默认地址:~/.cocoapods/repos/, cocoapods库索引文件存放在这里.
创建本地私有库项目工程
pod lib create [私有库]
按提示回答即可
将准备好的私有库文件替换replaceme.m文件
在Example中,执行
pod install
检查是否能正常引入到Example中
本地project关联到远程代码仓库
git add .
git commit -m "first commit"
git remote add origin [远程仓库地址]
git push -u origin master
配置podSpec文件
- s.homepage 库说明的地址,如无单独设置的,可以设置为远程代码仓库地址,展示Readme
- s.source 代码存放的仓库地址
- s.source_files 设置类文件路径,建议默认的,在Classes路径下
s.source_files = '**/Classes/**/*'
- s.resource_bundles 资源文件路径 建议用bundle(一个路径) / bundles(多个路径,数组), key值建议用 私有库名称, 后面引用该库创建的bundle名也会以 [私有库名].bundle 命名, 名称统一便于使用
s.resource_bundles = {
'[私有库名称]' => ['**/Assets/*', '**/Plist/*']
}
检测库是否能使用
如果未依赖其他私有的库
pod lib lint
如有依赖其他私有库,使用下面命令,
pod lib lint LSSleepMusicModule.podspec --verbose --sources=[远程podspec地址],master --allow-warnings
或
pod spec lint --allow-warnings --verbose --source=[远程podspec仓库地址1],[远程podspec仓库地址2]
提交podspec文件
pod repo push [本地podspec库名] [私有库名称].podspec --allow-warnings --verbose
默认的podspec文件配置的是版本号,由tag值指定.
pod repo push前需要先将对应版本号的tag打好并推送到远程代码仓库.
网友评论