本地Carthage生成的Charts.framework的Info.plist无法推送至Bitbucket
问题解决方案:Carthage生成的Charts.framework中Info.plist无法推送至Bitbucket
原因定位与对应解决步骤
- 检查Git多层忽略规则
你当前仅检查了项目根目录.gitignore,实际Git存在三层忽略规则会命中文件,可直接执行以下命令定位忽略来源:git check-ignore -v Myproject/Myproject/Frameworks/Charts.framework/Info.plist
如果有输出内容,对应路径的忽略文件中存在匹配Info.plist的规则,常见为全局.gitignore配置了通用Info.plist忽略,可执行git config --get core.excludesfile查看全局忽略文件路径,删除对应规则即可。 - 排查符号链接问题
Carthage构建生成的framework内部Info.plist大概率为符号链接,Git默认仅追踪软链本身,部分Git服务端不会展示软链指向的实体文件。执行以下命令确认文件属性:ls -l Myproject/Myproject/Frameworks/Charts.framework/Info.plist
如果输出首字符为l即可判定为软链,直接删除原有软链,将实体Info.plist复制到对应路径后重新添加追踪即可。 - 处理大小写不敏感问题
Mac系统Git默认开启大小写不敏感配置,如果仓库历史中存在过小写的info.plist文件,后续新增的大写Info.plist会被判定为同名文件不被追踪。执行以下命令查看配置:git config core.ignorecase
输出为true时,执行git config core.ignorecase false关闭大小写忽略,再重新添加文件提交。 - 强制添加文件追踪
上述排查无异常时,可直接使用强制添加命令绕过忽略规则校验:git add --force Myproject/Myproject/Frameworks/Charts.framework/Info.plist
之后正常提交推送,刷新Bitbucket页面即可看到文件已上传。
内容的提问来源于stack exchange,提问作者William Hu
相关产品推荐
相关产品推荐

