将 XCode 中的变量替换为 plist 文件(不是 Info.plist!)
Substitute variables in XCode for plist files (not Info.plist!)
我在 XCode 中有多个 PList 文件并通过 编辑器 -> 添加构建设置 -> 添加用户定义的设置 添加一些设置到 XCode 项目。当我在 Ìnfo.plist
中使用变量(例如 $(MY_COOL_SETTING
)时,效果很好。但是我还有一些其他的 plist 文件,它们通过链接器命令嵌入到可执行文件中(通过 -sectcreate
)。此 PList 文件中的变量将 NOT 被替换。有没有办法告诉 XCode 用链接器之前的值替换变量?
由于有人收藏了这个问题,我将post 我的解决方案放在这里。我现在手头没有来源或 XCode,但我会通过记忆尽可能做到最好。我所做的是添加一个自定义 BASH 脚本,将其添加为要在链接器之前执行的自定义构建步骤。您可以在 xcode 中执行此操作。这在这里得到了很好的解释:
https://www.hockeyapp.net/help/runscriptbuildphase/
在脚本中,您可以使用工具 PListBuddy
根据需要更改 PList。 PListBuddy
的用法在这里有很好的解释:
https://fgimian.github.io/blog/2015/06/27/a-simple-plistbuddy-tutorial/
我在 XCode 中有多个 PList 文件并通过 编辑器 -> 添加构建设置 -> 添加用户定义的设置 添加一些设置到 XCode 项目。当我在 Ìnfo.plist
中使用变量(例如 $(MY_COOL_SETTING
)时,效果很好。但是我还有一些其他的 plist 文件,它们通过链接器命令嵌入到可执行文件中(通过 -sectcreate
)。此 PList 文件中的变量将 NOT 被替换。有没有办法告诉 XCode 用链接器之前的值替换变量?
由于有人收藏了这个问题,我将post 我的解决方案放在这里。我现在手头没有来源或 XCode,但我会通过记忆尽可能做到最好。我所做的是添加一个自定义 BASH 脚本,将其添加为要在链接器之前执行的自定义构建步骤。您可以在 xcode 中执行此操作。这在这里得到了很好的解释:
https://www.hockeyapp.net/help/runscriptbuildphase/
在脚本中,您可以使用工具 PListBuddy
根据需要更改 PList。 PListBuddy
的用法在这里有很好的解释:
https://fgimian.github.io/blog/2015/06/27/a-simple-plistbuddy-tutorial/