Git无法识别新增.h、.m、.xib文件的Objective-C项目问题求助
解决Xcode无法识别新增Objective-C文件但配置文件已更新的问题
这种单台设备出现的Xcode文件识别异常,我之前在团队协作时也碰到过,结合你描述的症状(.pbxproj有记录、Finder可见但Xcode源代码树不显示,Metal文件正常),大概率是Xcode本地缓存或Git追踪配置的问题,给你几个逐步排查的方案:
1. 清除Xcode Derived Data缓存
Xcode的Derived Data经常会导致各种奇怪的索引问题,先从这里入手:
- 完全关闭Xcode(不要只最小化)
- 打开Xcode的
Settings > Locations,找到Derived Data那一行,点击右边的箭头打开文件夹,删掉整个Derived Data目录 - 或者直接在终端执行命令快速删除:
rm -rf ~/Library/Developer/Xcode/DerivedData - 重启Xcode并重新打开项目,看看新增的
.h/.m/.xib是否出现在源代码树中
2. 检查Git追踪状态(核心问题,关系到推送同步)
你提到其他设备拿不到文件,说明这台设备的Git根本没追踪这些新增文件:
- 打开终端,cd到项目根目录,执行
git status- 如果看到这些文件处于
Untracked files区域,说明Git没自动追踪,手动执行git add 你的文件名(比如git add TestNewViewController.h TestNewViewController.m),然后再提交推送 - 如果
git status里完全看不到这些文件,立刻检查项目根目录的.gitignore文件,看看是不是误加了.h/.m/.xib的忽略规则;另外也要检查本地的.git/info/exclude文件(这个是本地专属的忽略配置,不会同步到远程),有没有相关后缀的忽略设置
- 如果看到这些文件处于
3. 重置Xcode项目的本地用户配置
Xcode的xcuserdata里会存储本地的窗口布局、索引状态等缓存,损坏后也会导致文件不显示:
- 关闭Xcode,找到项目的
.xcodeproj文件,右键选择「显示包内容」 - 删除里面的
xcuserdata文件夹和project.xcworkspace文件夹(如果有的话) - 重新打开项目,Xcode会自动重建这些配置文件
4. 重建Xcode文件索引
如果以上步骤都没用,可能是Xcode的文件索引彻底损坏了:
- 在Xcode中选择
File > Workspace Settings(如果是单个项目则是Project Settings) - 点击
Advanced按钮,选择Custom > Relative to Workspace,然后点击Delete按钮清除现有索引 - 重启Xcode,它会自动重新生成整个项目的文件索引,这个过程可能需要几分钟,耐心等待完成后再检查文件
额外注意事项
- 解决后一定要确认:新增文件在Xcode源代码树中可见,并且
git status显示已被追踪,再执行commit和push操作 - 检查这台设备的Git远程仓库配置,执行
git remote -v,确保远程地址和其他协同设备一致,避免推送到错误的仓库
内容的提问来源于stack exchange,提问作者Rameez Hassan
相关产品推荐
相关产品推荐

