编程技术记录

世界你好!

目前,cocoapods-art还不能很好的适配苹果M系列芯片的macOS系统,故而探索出这条兜底的协作路径,可以不用使用cocoapods-art插件。
本文涉及相关命令curltargitpod(cocoapods)

原理

cocoapods-art的原理是先从jfrog下载全量的podspec索引,然后在本地创建git仓库存储这些索引,供cocoapods使用。
cocoapods-art插件操作的git仓库路径在 ~/.cocoapods/repos~/.cocoapods/repos-art里面。

同理,我们可以按照cocoapods-art这个流程来实现我们自己的索引管理方案。

下载索引

这里使用artifactory提供rest api,将索引下载到/AAAA(绝对路径,且不和操作系统用户绑定)路径

# -u 用户名密码鉴权
# -A 自定义http的User-Agent
curl  -u artifactory用户名:密码  -f -L -o /AAAA/file.tgz  http://artifactory域名/artifactory/api/pods/jfrog仓库名/index/fetchIndex  --create-dirs --netrc-optional --retry 2 -A 'CocoaPods/1.11.3 cocoapods-downloader/1.6.3' --ssl-no-revoke

创建git仓库或者更新git仓库

第一次下载索引文件时的操作(创建添加)

索引文件下载到/AAAA/file.tgz,使用tar命令解压

tar xf /AAAA/file.tgz -C  /AAAA
# 解压后删除压缩包
rm /AAAA/file.tgz

/AAAA目录初始化为git仓库,再次下载索引时只要更新git仓库就可以了

# 第一次下载索引文件后,初始化git仓库
cd /AAAA
git init 
git branch -M main #设置main为默认目录
# 添加索引文件到git仓库
git add .
git commit -m "add message"

# 再次下载所以文件后,直接讲索引添加到git仓库

再次下载索引文件时的操作(更新)

索引文件下载到/AAAA/file.tgz,先删除旧索引(specs),再使用tar命令解压压缩包

rm -fr /AAAA/Specs
tar xf /AAAA/file.tgz -C  /AAAA
rm  /AAAA/file.tgz

更新git仓库

git add .
git commit -m "update message"

修改Podfile源

这步是最后的操作了,将podfile的source指向我们下载后的索引目录

source '/AAAA'  #绝对路径,且不和操作系统用户绑定,避免podfile.lock文件因为操作系统用户不同而发生变化

然后执行 pod install就可以了

发表回复

© Beli. All Rights Reserved.