修改Xcode项目Display Name后,真机编译失败求助
Xcode修改Display Name后真机编译失败的解决办法
问题背景
修改Xcode General标签里的Display Name后,真机完全无法编译,模拟器正常。把名称改回原名称也没用,报错提示找不到指定路径下的Score_Keeper.swiftmodule文件。试过删除Build Phases里Copy Bundle Resources的红色条目,没用;找不到隐藏的Library文件夹,也搞不清错误路径的具体位置。
错误信息
error: /Users/treyw./Library/Developer/Xcode/DerivedData/Score_Keeper-ffykvkyyltqhhlfkdvjvrdbhsywn/Build/Intermediates.noindex/Score Keeper.build/Debug-iphoneos/Score Keeper.build/Objects-normal/arm64/Score_Keeper.swiftmodule: No such file or directory (in target 'Score Keeper' from project 'Score Keeper')
解决步骤
彻底清理缓存
这是最有效的第一步:- 关闭Xcode
- 打开终端,执行命令:
rm -rf ~/Library/Developer/Xcode/DerivedData(直接清除所有Derived Data缓存) - 也可以用Xcode快捷键:打开Xcode后按
Cmd+Shift+K清理Build文件夹,再按Cmd+Option+Shift+K清理Derived Data - 如果找不到Library文件夹,在Finder里按
Cmd+Shift+G,输入~/Library就能直接打开隐藏文件夹
统一项目配置名称
检查项目和Target的所有名称配置,避免空格或不匹配:- 点击项目根节点,确保Project名称和Target名称一致(错误路径里的Target名称带空格,可能是问题根源,尽量用下划线代替空格)
- 进入Target的Build Settings,搜索
Product Name和Bundle Display Name,确保两者的配置和你要的名称一致,不要有特殊字符 - 搜索
SWIFT_MODULE_NAME,确保这个值和你的模块名称一致(比如这里应该是Score_Keeper而不是带空格的Score Keeper)
修复路径权限
终端执行命令,确保你对Derived Data文件夹有读写权限:chmod -R 755 ~/Library/Developer/Xcode/DerivedData重置项目配置(终极方案)
如果上面的方法都没用:- 备份原项目文件
- 新建一个Xcode项目,名称用你需要的(比如Project2)
- 把原项目里的所有代码文件、资源文件拖到新项目里
- 重新配置General标签里的Display Name,这次只改
Bundle Display Name,不要修改项目或Target的名称
内容的提问来源于stack exchange,提问作者treyw
相关产品推荐
相关产品推荐

