当前位置: 首页 > news >正文

使用码云搭建CocoaPods远程私有库

一、创建远程私有索引库

用来存放私有框架的详细描述信息.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 status

git 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 master

git 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'
end

s.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

相关文章:

  • java面试题,什么是动态代理?、动态代理和静态代理有什么区别?说一下反射机制?JDK Proxy 和 CGLib 有什么区别?动态代理的底层
  • List、Set 和 Map 的区别及常见实现类、线程安全集合(总结图表)
  • 【正点原子K210连载】第七十六章 音频FFT实验 摘自【正点原子】DNK210使用指南-CanMV版指南
  • 自学python——第二天:)
  • AI大模型交付业务起势,亚信科技书写AI时代的转型样本
  • 游戏引擎学习第170天
  • 数据结构中的引用管理对象体系
  • ESP8266 与 ARM7 接口-LPC2148 创建 Web 服务器以控制 LED
  • Starrocks 命令 Alter table DISTRIBUTED 重分布数据的实现
  • 2025年全国铁路线路及站点(矢量shp数据)
  • C++多线程
  • 设计模式之代理模式:原理、实现与应用
  • IntelliJ IDEA新建文件配置作者信息、日期和描述等
  • FSC森林认证证书应用场景
  • python 数据可视化matplotib库安装与使用
  • 如何破解集运企业的劳动密集型困局,提高人效?
  • 10、STL中的unordered_map使用方法
  • Docker 离线安装教程
  • 2025-gazebo配置on vmware,wsl
  • 【练习】PAT 乙 1081 检查密码
  • 《蛮好的人生》:为啥人人都爱这个不完美的“大女主”
  • 国务院关税税则委员会关于调整对原产于美国的进口商品加征关税措施的公告
  • 硅料收储挺价“小作文”发酵光伏板块罕见大涨,知情人士:确实在谈
  • 印称印巴军事行动总指挥同意将局势降级
  • 2025年度十大IP!IP SH荣膺文化综合类TOP10
  • 这些网红果蔬正在收割你的钱包,营养师:吃了个寂寞