我的项目有三个目标。
其中一个是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
是readonly。
所以我的问题是,为什么日志详细信息与ui测试目标信息不同,以及如何在ui测试中控制版本字符串?
答案 0 :(得分:1)
当您从UI测试代码中调用[[NSBundle mainBundle] infoDictionary]
时,它会从UITests文件夹中的 Info.plist 获取信息,而不是从主项目文件夹中获取信息(您的应用代码)。
默认情况下,您的UI测试版本设置为1.0,这就是您看到CFBundleShortVersionString = "1.0"
的原因。
您的UI测试跑步者应用程序是单独编译到您正在测试的应用程序,并且没有权力更改应用程序代码或配置的内部,除非有一种做法在您的应用的UI中。
我不确定您是通过更改版本号来尝试实现的,但是如果您需要模拟对应用程序内部的更改,请使用单元测试而不是UI测试可能是前进的方向。