Как исправить Xcode 10.0 отладчик, он не работает в полной мере?

После обновления до Xcode 10.0 отладчик не выполняет основные функции. Возможно, проблемы отладчика не связаны с обновлением до 10.0, но я подозреваю это как катализатор.

Симптомы:

  • Breakpoints ломают правильно
  • Область "локальные переменные" (не уверен, что это правильный термин) перечисляет локальные переменные, но не может предоставить никакой информации о них. Попытка что-то вроде "Описание печати x" В результате появляется сообщение об ошибке:
Printing description of x
x = <could not resolve type>

С последующим:

note: Swift compiler options for ProjectX conflict with options 
found in other modules;
 Switching to a new expression evaluator for ProjectX, old $R 
variables are lost.
  • при выборе "просмотр памяти x" для любой заданной переменной появляется "вид памяти", но адрес "0x0", и в представлении абсолютно нулевой контент.

  • Используя интерфейс (lldb) напрямую, когда я пытаюсь напечатать переменную, то есть po x чтобы напечатать переменную "x", мне сначала дано сообщение выше о переключении на новый оценщик выражений, но при втором выполнении того же самого команда po x, другая ошибка представляется как

    error: Swift expressions require OS X 10.10 / iOS 8 SDKs or later.
    

Да, я на OS X 10.13, а мой iOS SDK - 12,0, и я смоделировал различные устройства iPad 6, pro 2, air 2, iPhone X, отладчик имеет одинаковые симптомы на всех устройствах.

Попытки исправления:

  • Я попытался повторно клонировать мой репозиторий в новом месте, чтобы импортировать новое рабочее пространство в новом месте.
  • Удалено DerivedData и перезагружен Xcode много раз
  • Удаленный и переустановленный Xcode
  • Очищено и перестроено все
  • Перезагруженный компьютер

Ответ 1

Я обновил версию Cocoapod до 1.6.0.b.2, и теперь мой отладчик работает. Похоже, что CommonCrypto вызывает проблему

Ответ 2

Я использовал Карфаген и имел те же проблемы. Обновление моих зависимостей с помощью этой команды разрешило мне проблему:

carthage update --platform iOS --no-use-binaries

Ответ 3

Исправлена

В случае моего проекта это было вызвано включением обертки CommonCrypto, которая была включена в качестве рамки в один из моих модулей. Из того, что я понимаю, это вызвало некоторый конфликт с криптовыми модулями, которые теперь включены в iOS

Это долгоживущий проект, и эта инфраструктура CommonCrypto теперь устарела для нас средствами, предоставляемыми в более поздних версиях Apple. С отключенной средой CommonCrypto отладка снова начала работать.

Ответ 4

В моем случае я удалил Fabric, Crashlytics, Firebase/Core из Cocoapod, и все в порядке.

Xcode 10.0

под 'Ткань', '~> 1.9.0'

под 'Crashlytics', '~> 3.12.0'

под 'Firebase/Core'