Итак, я писал тесты пользовательского интерфейса для своего приложения.
Я заметил, что если раскадровка содержит Webkit WebView, она не инициализируется должным образом, и в журнале я вижу следующее:
[NSKeyedUnarchiver decodeObjectForKey:]: невозможно декодировать объект класса (WKWebView) для ключа (NS.objects); класс может быть определен в исходном коде или библиотеке, которая не связана
Если я сам запускаю приложение, оно работает нормально, проблемы возникают только с пользовательским интерфейсом.
Я могу зайти в настройки проекта и вручную связать WebKit.framework, и тест будет пройден.
Но я хочу понять, что создает проблему в первую очередь? Почему происходит сбой только в тестах пользовательского интерфейса?
Шаги для воспроизведения
- Создать новый проект в Xcode. Выберите приложение Cocoa, отметьте «Использовать раскадровки» и «Включить тесты пользовательского интерфейса»
- В тестах пользовательского интерфейса напишите простой тестовый пример:
func testExample() {
XCUIApplication().launch()
}
- Откройте раскадровку и перетащите куда-нибудь WebView.
- Выполнить тест.