首页 > 解决方案 > 为什么我必须为 Xcode UI 测试手动链接 Webkit.framework?

问题描述

所以我正在为我的应用程序编写 UI 测试。

我注意到,如果故事板包含 Webkit WebView,它不会正确初始化,我在日志中看到以下内容:

[NSKeyedUnarchiver decodeObjectForKey:]:无法解码类对象(WKWebView)的键(NS.objects);该类可以在源代码或未链接的库中定义

如果我自己直接运行应用程序,它工作正常,只有 UI 测试有问题。

我可以转到项目设置并手动链接 WebKit.framework 并且测试将通过。

但我想首先了解是什么造成了问题?为什么它只在 UI 测试中失败?

重现步骤

  1. 在 Xcode 中创建一个新项目。选择 Cocoa App,勾选“使用故事板”和“包括 UI 测试”
  2. 在 UI 测试中编写一个简单的测试用例:
    func testExample() {
        XCUIApplication().launch()
    }
  1. 打开故事板并在某处放置一个 WebView。
  2. 运行测试。

标签: swiftxcodemacoscocoa

解决方案


推荐阅读