iOS程序何时运行“运行脚本”并加载Info.plist



在运行我的应用程序之前,我想运行一个外部shell来更新我的Info.plist。

使用构建阶段>运行脚本,我可以运行我的外部shell。这是我的问题,我在程序构建时看到 Info.plist 更新数据,但是当我遇到我的应用程序时,我发现从 plist 读取的数据是以前的旧数据。

我还发现了另一件有趣的事情。

一方面,如果我只是构建了项目(命令+ B),我看到plist更新,然后我运行程序,UI中显示的数据是新数据。

另一方面,如果我在 Xcode 中使用运行按钮,当 Xcode 显示构建成功时,我会看到 Info.plist 更新,但是,UI 中显示的数据是旧数据。

那么,会发生什么呢?你能帮我解决它,让我的数据始终是最新的吗?

====

=========

现在,我已经将我的"运行脚本"移动到"编译源代码(swift 文件)"之前运行外部 shell,它可以工作。但是,我仍然无法理解,因为它在构建时运行,如果我在"编译源代码(swift 文件)"之后运行我的"运行脚本",为什么正在运行的程序无法从 Info.plist 获取正确的数据?程序是否在运行时或编译时加载数据?

构建应用涉及许多不同的阶段。编译源只是其中之一,还有链接、复制资源、签名等。其中一些在"构建阶段"选项卡中明确列出,而另一些则没有。

因此,这实际上是在构建

过程中的适当时间运行脚本的问题,以便在构建过程实际使用 Info.plist 之前对其进行修改。

如果单击"报告导航器"图标(左侧面板顶部列表中的最后一个图标),则在上次生成时,您将看到该生成的报告,其中列出了在构建过程中执行的所有步骤,包括运行脚本和处理 Info.plist。

最新更新