agvtool执行next-version -all时报错无法找到Foo.xcodeproj/../NO如何解决
agvtool -all 参数的Info.plist检索逻辑与报错解决方案
agvtool -all 参数的执行逻辑
agvtool 带 -all 参数时,会遍历项目 .pbxproj 文件中所有 target 的 INFOPLIST_FILE 构建设定值,将路径和项目根目录拼接后,逐个更新对应文件中的 CFBundleVersion 字段值。
Cannot find ".../NO" 报错根因
该报错是 .pbxproj 文件中的异常配置被 agvtool 误解析导致:
Xcode 13 版本的项目重构后容易出现配置异常,某条 INFOPLIST_FILE 的配置值被误设为布尔值 NO,agvtool 不会校验该值的有效性,直接把 NO 当作Info.plist的相对路径拼接,就出现了寻找 ../NO 路径的错误。
排查修复步骤
- 右键点击项目的
Foo.xcodeproj文件,选择「显示包内容」,打开根目录下的project.pbxproj原始文本文件 - 全局搜索关键词
INFOPLIST_FILE = NO,即可快速定位到异常的配置行 - 若该配置属于已删除的残留target,直接删除该行即可;若属于现有三个target之一,将值修改为对应Info.plist的相对路径即可
- 可额外打开Xcode的「构建设置」面板,逐个检查所有target的「Info.plist File」配置项,确认没有显示为布尔值的异常配置
内容的提问来源于stack exchange,提问作者Rob
相关产品推荐
相关产品推荐

