如何在 UITesting swift 4 iOS 中获取应用程序名称

Posted

技术标签:

【中文标题】如何在 UITesting swift 4 iOS 中获取应用程序名称【英文标题】:How to get App name in UITesting swift 4 iOS 【发布时间】:2018-03-27 12:26:23 【问题描述】:

我试图在 UITesting 中获取我的应用名称。我尝试了以下代码:

let appName = Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as! String

但它给了我 nil 值的结果。

【问题讨论】:

您是否从您的APP的项目设置中设置了DisplayName?? 【参考方案1】:

当我试图找出“debugDescription”是否提供有关实际应用(而不是测试应用)的任何信息时,我偶然发现了一个看起来与应用显示名称完全相同的标签。

我不知道它是否对你有帮助,但以下简单的代码行帮助了我:

XCUIApplication().label

【讨论】:

不幸的是,它只有在您的应用程序正在运行时才有效,不是吗? @FlavioBittencourt 是的。但是,如果您将该名称存储在 let 常量中,然后终止应用程序,然后使用该名称就可以了【参考方案2】:

您确定在 Info.plist 文件中设置了显示名称吗? 只需在项目设置或 Info.plist 中设置此名称即可:

【讨论】:

是的。已经在 Xcode 的 UITest 的 info.plist 中添加了这个。但它不起作用。 您应该将此添加到您的主要应用目标的 Info.plist 中,而不是在测试目标中。您确定将其添加到您的主要目标中吗?【参考方案3】:

如果您在工作区环境中,请尝试转至文件 > 工作区设置;对于常规项目环境,请尝试转至文件 > 项目设置。

然后点击 Derived data 部分下的灰色小箭头并选择您的项目文件夹以将其删除。

和产品 > 清洁。 它在许多情况下都有帮助。

【讨论】:

以上是关于如何在 UITesting swift 4 iOS 中获取应用程序名称的主要内容,如果未能解决你的问题,请参考以下文章

iOS UITesting 如何关闭弹出框(iPad 弹出框不提醒样式)

Swift UITesting 错误:文字中的转义序列无效。 \U201c

在iOS UITesting中获取一个包含另一个带有静态文本的元素的元素

iOS UITesting 错误

Xcode Bots 从单个 Xcode 服务器在多个 iOS 项目上运行 UITesting

Xamarin.iOS UITesting - UnauthorizedAccessException