一、创建远程私有索引库
用来存放私有框架的详细描述信息
.podspec
文件
1. 创建私有库
假设码云上创建的私有库为repo-spec
2. 查看本地已存在的索引库
pod repo list
3. 将远程私有索引库添加到本地
pod repo add [https://gitee.com/jingluoguo/repo-spec.git](https://gitee.com/lsapp_dev/repo-spec.git)
地址改成实际的repo-spec
地址
4. 再次查看本地已存在的索引库
此时就可以看到repo-spec
二、创建基础组件库
1. 创建私有库
假设码云上创建的私有库为AKTalkKit
2. 本地创建模版工程
进入所需要的目录,假设为
oc_private_pods
pod lib create AKTalkKit
根据所需选择即可。
3. 按需修改组件代码
修改ReplaceMe
文件名及内容即可,记得cd Example
后 执行pod install
4. 将基础组件库上传到gitee
- 修改
AKTalkKit.podspec
- 检查
podspec
是否正常
pod lib lint --allow-warnings --verbose
,当出现AKTalkKit passed validation
,代表验证成功
- git 提交
git statusgit add .git commit -m ‘AkTalkKit 库上传’# 将本地库与远程库进行关联
git remote add origin [https://gitee.com/jingluoguo/](https://gitee.com/lsapp_dev/repo-spec.git)AkTalkKit[.git](https://gitee.com/lsapp_dev/repo-spec.git) # 此处为实际git地址git push origin mastergit tag '0.1.0' # 要与实际版本一样git push --tags
5. 将podspec提交到私有索引库
pod repo push repo-spec AkTalkKit.podspec
三、注意
1. 可以在podspec
中使用s.subspec
来进行分库
s.subspec 'Package1' do |p|p.source_file = 'AkTalkKit/Classes/Package1/*'p.dependency 'AFNetworking'
ends.subspec 'lottie' do |l|l.source_file = 'AkTalkKit/Classes/lottie/*'p.dependency 'lottie-ios'
end
2. 修改Kit库后执行二.4和二.5即可
3. OC主程序使用私有框架时,如果私有框架中存在代码生成全局变量,那么需要使用xxx-umbrella.h
文件调用
-umbrella.h
文件通常是 CocoaPods 插件或构建系统自动生成的 Objective-C 模块头文件(也称为 “umbrella header”)。
当私有库包含 Objective-C 代码,并通过 CocoaPods 或 Xcode 的模块系统(如 DEFINES_MODULE = YES
)构建时,构建系统会自动生成 _oc-umbrella.h
。
-umbrella.h
会包含所有标记为 Public 的 Objective-C 头文件,使得其他模块(如 Swift)可以通过单一头文件访问所有公开的 Objective-C 类和方法。
4. 当私有库过大时,可以设置git缓存大小
git config --global http.postBuffer 1073741824
git config --global core.compression 9
git config --global pack.windowMemory 512m