ios CI/CD 持续集成 组件化专题四-(手动发布私有库-组件化搭建)

一 、创建私有索引库

1.1 、第一步

首先检查本地是否存在需要的私有索引库

pod repo list

例如:dp_base_ios_spec 在本地不存在该私有索引库

1.2 、第二步

在git下下创建一个新的库,这个库用来保存私有库的podspec文件,取名叫xxxSpec用以区分这个库的作用,如下base_ios_spec索引库

1.3 、第三步

接着创建本地索引库,也就是将刚才创建的远程索引库dp_base_ios_spec关联到本地

pod repo add base_ios_spec git@git.xxx/base_ios_spec.git

此时本地就有了 base_ios_spec这个索引库

二 、开始创建本地私有库

2.1 第一步

首先创建本地私有库(该库是代码库)

pod lib create DPApplePurchasing

2.2 第二步

按照提示输入相应的配置

2.3 、第三步

配置完成后会自动打开一个xcode工程,具体层级如下图

2.4 、第四步

在CommonUtil里面放入自己的私有库代码同时删除掉ReplaceMe

2.5 、第五步

到demo中进行

pod install

2.6 、第六步

然后编写podspec文件,详情见以下

三 、 将私有库push到远程仓库

3.1 、Push an existing folder

复制代码
cd existing_folder
git init
git remote add origin git@xxx/dpalipaymodule.git
git add .
git commit -m "Initial commit"

3.2 、Push an existing Git repository

复制代码
cd existing_repo
git remote rename origin old-origin
git remote add origin git@xxx/dpalipaymodule.git

3.4 拉取远程内容

git pull --rebase origin master 拉取远程仓库的内容和本地的合并

git push -u origin master 将代码推送到远程仓库的master分支

四 、进行本地校验

4.1 、pod lib lint --allow-warnings

组组件依赖了三方QKYYKit,需要添加三方库的git地址

4.2 、 修改本地校验添加三方库的cocoapods地址

pod lib lint --sources="https://github.com/CocoaPods/Specs.git" --use-libraries --allow-warnings --no-clean

出现上述提示,代表本地校验成功

五 、进行远程校验

pod spec lint --sources="https://github.com/CocoaPods/Specs.git" --use-libraries --allow-warnings

出现以上错误信息,表示需要先打tag才能进行远程校验

执行完第六步再次执行上面的远程校验显示如下,代表远程校验通过

六 、打tag

七 、接着需要把podspec推送到远程私有索引库

pod repo push dp_base_ios_spec CommonUtil.podspec --verbose --use-libraries --allow-warnings

上传成功后在远程和本地索引库显示如上

八 、 验证私有库是否发布成功

到此手动发布私有库CommonUtil 成功,就可以正常使用

相关推荐
_瑞12 小时前
深入理解 iOS 渲染原理
前端·ios
老谷子.AI原始技术15 小时前
《Claude Code 工程化实战》第 21 讲 Headless 模式与 CI/CD 集成
ci/cd·claude code
Android出海20 小时前
iOS 出海新门槛:未成年人合规来了
ios·app store·ios开发·苹果开发者·ios开发者·ios出海
2501_9151063220 小时前
iOS 软件测试工具性能监控、日志分析 KeyMob、Instruments等
android·ios·小程序·https·uni-app·iphone·webview
木叶丸21 小时前
AI 编程概念与 Harness 工程实践入门
人工智能·flutter·ios
zzb15801 天前
Zed 配置 Swift / iOS 开发
开发语言·ios·swift
黑科技iOS上架2 天前
如何解决AppStore Guideline 5.6被拒
经验分享·ios·ai编程
韩曙亮2 天前
【Flutter】iOS 网络权限设置 ① ( WLAN/蜂窝全局联网权限设置 )
网络·flutter·ios·网络权限
Skilce2 天前
基于GitLab CI/CD + Kubernetes的自动化部署平台搭建
ci/cd·kubernetes·gitlab
Geek-Chow2 天前
Mobile App Certificate Pinning: Underlying Principle and a Swift Example
开发语言·ios·swift·安全架构