找不到“$(SRCROOT) agvtool | increment_build_number | Fastlane

Cannot find "$(SRCROOT) agvtool | increment_build_number | Fastlane

Fastlane 中与 increment_build_number 插件关联的 avgtool 返回错误。

当我在快车道 运行 increment_build_number 时,我得到

Updating CFBundleVersion in Info.plist(s)...

$(SRCROOT)/Info.plist
Cannot find "$(SRCROOT)/Info.plist"

问题的原因是 avgtool 无法识别 $(SRCROOT)

找到的解决方案之一是将 Xcode 设置中 Info.plist 的路径更新为绝对路径。

由于这个项目有很多开发人员,更新项目设置绝对路径(到plist)会影响其他人构建项目。

还有其他方法可以解决这个问题吗?

您的问题的当前解决方案是从构建设置中删除 $(SRCROOT)。 $(SRCROOT) 表示 "directory where .xcodeproj is" 所以你完全可以删除它(Xcode 仍然会从 .xcodeproj 中相对地寻找它)。

我们最近从 get_version_number 操作中删除了 agvtool(在版本 2.87.0 中支持使用 xcodeproj gem 我们可以更好地处理哪个目标找到,处理 $(SRCROOT),然后删除 "avgtool setup process"。我将尽快更换 increment_build_numberget_build_number 中的 agvtool,这有望防止出现类似此类的进一步问题。

您可以打开项目设置并找到密钥INFOPLIST_FILE

  • INFOPLIST_FILE = "$(SRCROOT)/ProjectName-info.plist";

然后删除 $(SRCROOT) 确保 在你 更改 Xcode 之后仍然可以找到你的信息 plist

新值可能是:

  • INFOPLIST_FILE = "/ProjectName-info.plist";

  • INFOPLIST_FILE = "/MyProjectFolderName/ProjectName-info.plist";