iOS程序何时运行`Run Script`并加载Info.plist

时间:2016-01-14 12:10:02

标签: ios xcode

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

使用Build Phases-> Run Script,我可以运行我的外壳。这是我的问题,我看到Info.plist在程序构建时更新数据,但是当我遇到我的应用程序时,我发现从plist读取的数据是以前的旧数据。

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

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

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

那么,会发生什么?你能帮我解决一下,让我的数据永远是最新的。

=============

现在,我已经将'Run Script'移动到'Compile Source(swift files)'之前运行外壳,并且它可以工作。但是,我仍然无法理解,因为它在构建期间运行,如果我在'编译源(快速文件)'后运行我的'运行脚本',运行程序无法从Info.plist中获取正确的数据?程序在运行时或编译时加载数据吗?

1 个答案:

答案 0 :(得分:0)

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

因此,在构建过程中的适当时间运行脚本真的是一个问题,以便在构建过程实际使用之前修改Info.plist。

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