您可以在 Xcode 的构建阶段中更改 运行 脚本中的 info.plist 吗?

Can you change info.plist inside a Run Script in Xcode's Build Phase?

我正在尝试在构建阶段 运行 脚本中为我的 Info.plist 添加一个值:

/usr/libexec/PlistBuddy -c "Add :BuildDate date `date`" "${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH}"

# For debugging:
cat "${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH}" | grep BuildDate

这是可行的(由 cat 证明),但似乎结果几乎立即被其他 Xcode 构建步骤覆盖。

是否根本无法在构建阶段修改 Info.plist?我在网上看到了很多关于这样做的建议。

我假设您正在尝试修改 Info.plist(而不是 plist.info,因为我不知道那是什么)。

绝对可以在构建阶段创建、修改或删除 Info.plist。但是,您需要在构建过程需要使用 Info.plist 之前这样做。执行此操作的确切时间各不相同,但越早越好 - 我建议在依赖项步骤之后立即执行此操作。

我有一个 sample Xcode project 可以为 macOS 应用程序和 macOS 命令行工具执行此操作。它比您可能尝试做的要复杂得多,但看一下它的配置方式可能会有所帮助。

所以我从来没有真正发现为什么这对我不起作用但对其他人却有效。但是,我确实遇到了 a post,它为我解决了这个问题。解决方案是在构建阶段添加 Info.plist 文件作为输入文件。

${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH}