前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >gitignore 添加 Pod 三方库

gitignore 添加 Pod 三方库

作者头像
莫空9081
发布2023-10-16 09:51:23
1920
发布2023-10-16 09:51:23
举报
文章被收录于专栏:iOS 备忘录

背景

最近项目遇到了一个问题,排查了好久,最后发现是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,看是否这个全局的配置中是否也需要修改。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-09-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 修改
  • 结论
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档