Подтвердить что ты не робот

Бета-отладчик Xcode 7 не показывает значения переменной в точке останова для кода Swift

Я попробовал ответы на вопросы здесь, но ни один из них не помог :(

Я установил Xcode 7 beta 5 и отладчик не будет показывать значения переменных при отладке swift-кода. Он прекрасно работает в коде Obj-C.

Я попытался изменить уровень оптимизации компилятора на None, и это не имело никакого эффекта.

enter image description here

4b9b3361

Ответ 1

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

Я нашел это, используя 'po' в отладчике для одной из переменных, например. 'po self.views'. Затем отладчик перечислил все ошибки в заголовочном заголовке для меня. Странный способ выяснить проблему, но она сработала.

EDIT: И на всякий случай выполните чистую сборку после устранения любых проблем.

Ответ 2

Это может быть связано с проблемой в файле моста между Swift и Objective-C, например файлом {projectName} -Bridging-Header.h. Чтобы убедиться в этом:

1- добавить точку останова в месте, которое вы хотите отлаживать.

2- После достижения точки останова напишите команду lldb po на любом объекте в окне вывода отладки xCode. например:

po self.view

Если есть проблема, вы должны увидеть ее в журнале и, надеюсь, вы можете пойти и исправить ее

Ответ 4

В потоке, связанном с @Breek, содержится решение - Twitter опубликовал исправление для этого. Обновление Crashlytics с 3.1.x до 3.2 исправляло отладчик для меня на семена Xcode 7 GM. Если по какой-либо причине вы не можете обновить Crashlytics, вы должны иметь возможность редактировать свои файлы заголовков, как указано в потоке, в качестве временного временного решения; т.е. вместо #import <Fabric/FABAttributes.h> в crashlytics.h вместо @import Fabric;.

Ответ 5

Я была такая же проблема. Я решил это по этой ссылке здесь:

Отладчик Swift не показывает значения переменных при импорте инфраструктуры ObjC

Сначала попробуйте переместить в подпапку все .framework, как пишет автор этого поста:

Я получил сообщение от разработчика Apple, в котором сообщалось, что они наблюдали эту проблему и что ее можно исправить, переместив .framework в подпапку проекта. Очевидно, что модуль.. был встроен в каталог. Ошибка появляется, только если файл .framework находится в той же папке, что и файл .xcodeproj aka $ (PROJECT_DIR).

Но в моем случае основной проблемой был фреймворк OpenTok. После того, как я добавлю действие в точку останова

po self 

Журнал показывает сообщение:

предупреждение: ошибка Swift в модуле myapp: в Swift возникли фатальные ошибки при создании контекста ast для этого модуля:: 1: 9: примечание: в файле, включенном из: 1: #import "/Users/me/Developer/myapp-ios/Pods/OpenTok/OpenTok.framework/Headers/OpenTok.h"

И, наконец, я добавил эти строки кодов в Podfile:

post_install do |installer|
  'find Pods -regex 'Pods/OpenTok.*\\.h' -print0 | xargs -0 sed -i '' 's/\\(<\\)OpenTok\\/\\(.*\\)\\(>\\)/\\"\\2\\"/''
end

После этого, наконец, pod install.

Ответ 6

У меня была та же проблема. Причина в том, что я использую Crashlytics, который является областью ObjC.

Попробуйте удалить некоторые из фреймворков ObjC, а затем shift + cmd + k, чтобы очистить проект и снова его восстановить.

После этого он должен работать.

Ответ 7

Перейти к проекту → Цели → Настройка сборки → Уровень оптимизации → Отладка и заданное значение независимо от того, хотите ли вы

Ответ 8

Удаление Fabric/Crashlytics сделало это для меня. Я могу сказать, что не все импорта ObjC вызывают эту проблему. Я все еще использую некоторые другие в моем проекте Swift, но почему-то Crashlytics вызывает некоторые проблемы в последней бета-версии. У меня также была ошибка компилятора, и мне пришлось отключить биткод для компиляции проекта.