2016-07-25 42 views
0

我的项目有三个目标。如何在UI测试中获取和编辑NSBundle信息?

其中之一是ui测试目标,并在info标记中,我尝试将iOS Target Properties->Bundle versions string, short更改为2.5.0(与主项目相同)。

在我编辑之前,我创建了.pch文件并将其与ui测试目标关联。

在一个测试文件中,我注销[[NSBundle mainBundle] infoDictionary]的详细信息,但它显示CFBundleShortVersionString = "1.0"CFBundleIdentifier = "com.apple.test.xxxxUITests-Runner"

财产infoDictionary是只读的。

所以我的问题是,为什么日志细节不同于ui测试目标信息,以及如何在ui测试中控制版本字符串?

回答

1

当您从UI测试代码中调用[[NSBundle mainBundle] infoDictionary],它正从该的Info.plist的UITests文件夹内的信息,而不是从主项目文件夹(你的应用程序代码)里面的一个。

默认情况下,您的UI测试版本设置为1.0,所以这就是您看到的原因CFBundleShortVersionString = "1.0"

您的UI测试运行器应用程序被单独编译到您的应用程序中,并且没有权力更改应用程序的代码或配置的内部,除非您的应用程序的用户界面中有这样做的方法。

我不确定你想通过更改版本号来达到什么目的,但是如果你需要模拟应用内部的变化,那么使用单元测试代替UI测试可能是前进的方向。