Я не могу распечатать отладочную информацию в своих тестах пользовательского интерфейса. Конфигурация: Xcode 10 и SWIFT 4.2.
Когда я пытаюсь распечатать что-то на консоли, я вижу только ошибку:
"error: Couldn't IRGen expression, no additional error"
У меня не было проблем в более ранних версиях Xcode (8,9 и т.д.), Только в Xcode 10. Я ничего не могу напечатать, когда поставил po XCUIApplication()
останова и попытался напечатать например app po XCUIApplication()
или что-то в этом роде.
В более ранней версии Xcode, когда я пишу в консоли:
"po XCUIApplication.debugDescription()"
Я видел структуру моего приложения.
Мы обнаружили, что проблема возникает, когда внешняя структура добавляется в Target Tests Target. Мы создали пример проекта с включенной RxSwift.framework, который можно использовать для воспроизведения нашей проблемы:
https://drive.google.com/file/d/1BlByFVNaOdDqT4ED9Jwyi1kJ99PTRQen/view?usp=sharing
С уважением.
Ответ 1
У меня была такая же проблема с Карфаген. Однако, глядя более внимательно на консоль, я заметил, что Карфаген вместо того, чтобы строить RxSwift, просто загрузил предварительно созданные двоичные файлы,
*** Downloading RxSwift.framework binary at "Zürich"
которые, в свою очередь, способствуют ошибке IRGen. Таким образом, заставляя Карфаген создавать фреймворк вместо загрузки бинарных файлов.
carthage update --platform iOS --no-use-binaries
Ответ 2
Быстрый формат отладки - это двоичный дамп внутренних объектов Swift, поэтому вы должны скомпилировать свои двоичные файлы с компилятором, который поставляется с отладчиком, который вы используете, или что-то плохое.
Я могу воспроизвести поведение, которое вы видели, используя Xcode 10.0 и проект, который вы предоставили. Но затем я получил источники RxSwift из github и перестроил их с помощью компилятора Xcode 10.0 и заменил ваш RxSwift.framework тем, что я создал локально, и повторил тест, а выражение, которое вы привязали к точке останова, работало правильно. Вы видите, что это также работает на вас?
Отладчик должен был дать лучшее сообщение об ошибке, если вы хотите записать ошибку с репортером быстрой ошибки (http://bugs.swift.org), мы можем посмотреть на улучшение сообщения об ошибке.
Ответ 3
У меня была такая же проблема с Carthage - RxSwift.
Удаление файлов из
Карфаген/Сложение/...
Карфаген/Кассовые/
И вызов обновления Carthage в терминале разрешил мою проблему.
Обновить:
Мы заметили, что эта проблема возникает только при обновлении библиотеки RxSwift до версии 4.3 и выше. Настройка версии 4.2.x работает нормально.
Ответ 4
Проверьте, правильно ли подключены рамки. В моем случае замена фреймворка на POD решила эту проблему.