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

使用码云搭建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

http://www.kler.cn/a/592436.html

相关文章:

  • 人事档案管理系统基于Spring BootSSM
  • LS-NET-006-思科MDS 9148S 查看内存
  • 【微服务】基于Lambda ESM的预留模式调整Kafka ESM吞吐量的实战
  • Spring Boot集成MyBatis与MySQL
  • Swagger-告别手写文档
  • 第十五届蓝桥杯C/C++组:宝石组合题目(从小学奥数到编程题详解)
  • 【嵌入式Linux】基于ArmLinux的智能垃圾分类系统项目
  • 构建高效复杂系统的关键:架构与模块详解
  • 【Java】Mybatis学习笔记
  • k8s常用知识点总结
  • Matlab 汽车振动多自由度非线性悬挂系统和参数研究
  • USB(Universal Serial Bus)详解
  • ETL中的实用功能以及数据集成方式
  • 基于Spring Boot的流浪动物救助平台的设计与实现(LW+源码+讲解)
  • Vmware中的centos7连接上网
  • ==和equals的区别?
  • VLLM专题(三十六)—自动前缀缓存
  • Java 中的引导类加载器(Bootstrap ClassLoader) 详解
  • 如何理解分布式光纤传感器?
  • 49.71.79.51和49.71.79.42算不算同一个子网中的ip地址吗?