Тесты Swift UI не запускаются на устройствах с iOS 12.3 - PullRequest
1 голос
/ 22 мая 2019

Я пытаюсь настроить некоторые тесты пользовательского интерфейса, но не могу запустить их на устройствах под управлением iOS 12.3.

Даже если я запускаю новый быстрый проект с помеченным «Включить тесты пользовательского интерфейса» и пытаюсь сразу же запустить тесты пользовательского интерфейса на устройстве с операционной системой iOS 12.3, я получаю следующее:

2019-05-22 15: 42: 41.543630 + 0100 testUITests-Runner [461: 45630] Запуск тестов ... 2019-05-22 15: 42: 41.601954 + 0100 testUITests-Runner [461: 45630] Пакет «testUITests» не может быть загружен, поскольку он поврежден или отсутствует необходимый ресурс . Попробуйте переустановить комплект. 2019-05-22 15: 42: 41.602043 + 0100 testUITests-Runner [461: 45630] (dlopen_preflight (/var/containers/Bundle/Application/50D1F2AB-69B9-4C3D-B36B-F84F838E3301/testUITests-RlugIns// testUITests.xctest / testUITests): Библиотека не загружена: @ rpath / libswiftCore.dylib Ссылка на: Причина: изображение не найдено )

Я видел различные вопросы и ответы на одни и те же ошибки, относящиеся к бета-версиям Xcode 6, но ни одно из предложений не помогло, включая:

  • Чистая сборка
  • изменение правил доверия к сертификату
  • импорт CoreLocation
  • включая файл-макет swift
  • изменение путей поиска пути выполнения (кажется, это было исправлено в Xcode)
  • изменение настройки сборки «всегда встраивать быстрые стандартные библиотеки»

Я запустил Xcode 10.2 и обнаружил проблему, обновление до Xcode 10.3 не помогло.

На симуляторе 12.2 он работал нормально, но не на устройстве.

Ответы [ 3 ]

1 голос
/ 23 мая 2019

Ответ на это невероятно прост. Просто убедитесь, что в ваших настройках сборки цель тестирования пользовательского интерфейса имеет ту же цель развертывания, что и приложение.

Я изменил приложение на целевую до iOS 10, но не думал, что мне нужно будет сделать то же самое изменение для цели тестов пользовательского интерфейса.

Я полагаю, что это то, что должно быть для нас автоматически синхронизировано, вероятно, нет причин, чтобы они действительно предназначались для разных версий

0 голосов
/ 23 мая 2019

Я нашел обходной путь для этой проблемы, хотя он не обязательно надежен для будущих версий Xcode, поэтому будьте осторожны, если решите попробовать это (возможно, вам придется повторить процесс после обновления Xcode).

Если вы перейдете в следующий каталог, вы найдете все быстрые библиотеки для устройств iPhone:

 Applications⁩ ▸ ⁨Xcode⁩ ▸ ⁨Contents⁩ ▸ ⁨Developer⁩ ▸ ⁨Toolchains⁩ ▸ XcodeDefault.xctoolchain⁩ ▸ ⁨usr⁩ ▸ ⁨lib⁩ ▸ ⁨swift⁩ ▸ ⁨iphoneos

Вы можете скопировать их в свою цель тестов пользовательского интерфейса (не тестируемое приложение), а затем добавить фазу сборки файлов копирования, чтобы связать библиотеки в тестовом средстве, чтобы их можно было найти во время выполнения. Вам не нужны все библиотеки swift, на следующем изображении показано, какие библиотеки мне понадобятся:

copy files build phase

Стоит также отметить, что это приводит к неправильному запуску тестов на симуляторе (без сомнения, отчасти потому, что эти быстрые библиотеки, которые были скопированы, являются версиями для устройства), хотя может быть способ обойти это или, возможно, это нормально, если вы не собираетесь запускать их на симуляторе

0 голосов
/ 22 мая 2019

У меня есть 2 догадки,

  1. dyld: библиотека не загружена: @ rpath / libswiftCore.dylib

  2. Вы загружали компоненты для версий ios в компонентах?

Включите и выключите компьютер, в худшем случае удалите и переустановите xcode.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...