ошибка: невозможно выражение IRGen, нет дополнительной ошибки - PullRequest
0 голосов
/ 20 сентября 2018

Я не могу напечатать отладочную информацию в моем UI TESTS.Конфигурация: Xcode 10 и SWIFT 4.2.

Когда я пытаюсь распечатать что-то в консоли, я вижу только ошибку:

"error: Couldn't IRGen expression, no additional error" 

У меня не было проблем в более ранних версиях Xcode(8,9 и т. Д.), Только в Xcode 10. Я не могу ничего напечатать, когда ставлю точку останова и пытаюсь напечатать, например, приложение po XCUIApplication() или что-то в этом роде.

В более ранней версии Xcode, когда я пишу в консоли:

"po XCUIApplication.debugDescription()" Я видел структуру моего приложения.

Мы обнаружили, что проблема возникает, когда внешнийфреймворк добавлен в цель тестирования пользовательского интерфейса.Мы создали пример проекта с RxSwift.framework , который можно использовать для воспроизведения нашей проблемы:

https://drive.google.com/file/d/1BlByFVNaOdDqT4ED9Jwyi1kJ99PTRQen/view?usp=sharing

С уважением.

Ответы [ 4 ]

0 голосов
/ 12 апреля 2019

Проверьте, правильно ли подключены рамки.В моем случае замена фреймворка на POD решила эту проблему.

0 голосов
/ 21 сентября 2018

У меня была такая же проблема с Карфагеном - RxSwift.

Удаление файлов из

Carthage / Build /...

Carthage / Checkouts /

И вызов обновления карфагена в терминале решил мою проблему.

Обновление:

Мы заметили, что эта проблема возникает только при обновлении библиотеки RxSwift до версии 4.3 ивыше.Установка версии на 4.2.x работает нормально.

0 голосов
/ 05 октября 2018

У меня была такая же проблема с Карфагеном.Однако, присматриваясь к консоли, я заметил, что Carthage вместо сборки RxSwift только что скачал предварительно созданные двоичные файлы,

*** Downloading RxSwift.framework binary at "Zürich"

, которые, в свою очередь, приводят к ошибке IRGen.Так что принуждение Carthage к созданию фреймворка вместо загрузки бинарного сработало.

carthage update --platform iOS --no-use-binaries
0 голосов
/ 21 сентября 2018

Формат отладки swift - это двоичный дамп внутренних объектов Swift, поэтому вы должны скомпилировать свои двоичные файлы с помощью компилятора, который поставляется вместе с отладчиком, который вы используете, или что-то пойдет не так.

Я могу воспроизвести поведениевы видели, используя Xcode 10.0 и проект, который вы предоставили.Но затем я получил исходные тексты RxSwift от github и перестроил их с помощью компилятора Xcode 10.0 и заменил ваш RxSwift.framework на тот, который я создал локально, и перезапустил тест, и выражение, которое вы прикрепили к точке останова, работало правильно.Можете ли вы увидеть, работает ли это и для вас?

Отладчик должен был выдать лучшее сообщение об ошибке, если вы хотите сообщить об ошибке в Swift Bug Reporter (http://bugs.swift.org), мы можем посмотреть на улучшениесообщение об ошибке.

...