gitignore 添加 Pod 三方库

2023-10-16 09:51:23 浏览数 (3)

背景

最近项目遇到了一个问题,排查了好久,最后发现是Pod 依赖的私有组件的代码有问题,导致了打包的时候线上包出现了问题。

笔者的项目按照功能抽象出了私有组件,使用 Pod 的方式导入项目,但是 Pod的内容是不提交到 git 的,即每次 Pod 修改,在 主项目的git变更中看不到。于是就遇到了这个问题。

先在主项目中调试的时候,修改了 Pod库的内容。然后把修改内容同步到了 Pod 库单独的项目。但是最后打包的时候 Pod 库的内容却是老的。因为项目里依赖的 Pod 库指定了版本,而更新 Pod库单独的项目时,只同步到了分支上,没有更新新的 Tag。于是再次更新主项目的库时,这个库的内容就又变回了老的。

Ps:理论上来说,放入 Pod 库的内容不应该被频繁修改,是抽出的基础库之类的。但是实际开发中,为了组件化,有些功能组件也会作为私有库使用 Pod 依赖,这些库可能是频繁变更的。

基于这点,笔者感觉还是把 Pod 中的内容,放入主项目的 .git 中比较好,方便看出修改,能够避免出现上面的问题。

修改

笔者直接进入项目工程所在目录,编辑.gitignore文件,移出文件中 #CocoaPods有关的内容,如下:

代码语言:javascript复制

#CocoaPods
Pods/
Pods
.DS_Store
Podfile.lock
/.DS_Store
Podfile.lock
/Podfile.lock

改为

代码语言:javascript复制

#CocoaPods
.DS_Store
/.DS_Store

保存退出后,发现Pod 库仍没有出现在 git 中,而.gitignore中所有 Pods 相关的都已经移除了。所以哪里出问题了?笔者网上搜了很多答案,但是都没有解决。

这时,看到.gitignore顶部有一句话

代码语言:javascript复制
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore

笔者搜索 Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore,没有发现有类似的文件。这时笔者想到了,会不会是有全局的.gitignore文件,于是笔者进入到根目录中,输入open .gitignore,提示The file /Users/horizon/.gitignore does not exist.。嗯哼,没有这个文件吗?笔者再输入ls -a,发现了,原来根目录的文件名字是.gitignore_global,打开后发现里面果然设置了 Pods,删除、保存、退出,这时候就发现Pods 中的文件出现在主项目的.git 中了。

结论

编辑项目中的.gitignore文件之后,如果发现没有生效,可以去根目录下,打开.gitignore_global,看是否这个全局的配置中是否也需要修改。

0 人点赞