Я перенес проект из предыдущей версии Xcode в Xcode 8. Я хочу использовать новый отладчик визуальной памяти. Он доступен в новых проектах, но полностью отсутствует в моем импортированном. Почему это?Как включить Visual Debugger в Xcode 8?
ответ
Оказывается, что Swift 3 необходим для визуального отладчика памяти для работы.
Мое приложение, перенесенное в Swift 2.3, не работало, когда я попытался перевести его на Swift 3.0, он работал мгновенно.
Флажок проверки работоспособности не требуется для работы отладчика визуальной памяти, однако причина его отключения одинакова.
Подтверждено в примечаниях к выпуску [Xcode 8.0 beta release] (http://adcdownload.apple.com/WWDC_2016/Xcode_8_beta/Release_Notes_for_Xcode_8_beta.pdf): «Обратите внимание, что несколько новых функций в Xcode 8 не поддерживаются для проектов, в которых используется Swift 2.3. К ним относятся: • Отладка графа памяти • Адрес Sanitizer • Дезинфицирующее средство потока • Генерация кода времени построения сердечника Для использования этих функций должен мигрировать ваш код Swift в Swift 3. (26003920) « – zpasternack
Мой проект с использованием swift 2.3 действительно работает. – Brynjar
Я только что запустил проект Objective-C iOS 7, выполненный с Xcode 7 в Xcode 8 (без миграции), а значок Visual Debugger в нижней части Xcode появится в области отладки рядом с кнопкой «Инициализация отладки».
Это кнопка с тремя кругами.
Из других комментариев, похоже, для использования этой функции может потребоваться Swift 3.
Этого нет. Может быть, это как-то связано с тем, что мой проект является приложением для Mac? – PopKernel
Хм, может быть. Какую версию OS X вы планировали раньше, и какая версия Xcode была создана с помощью проекта? – JAL
Подождите, как насчет «санитарии во время работы»? он переключается на схему новых проектов, но не в моей. Он серовато, говоря «требует перекомпиляции». – PopKernel
Кажется, что проекту требуется Swift 3 для включения адреса & Фильтр нитей (который является отладчиком памяти).
Для меня это относится и к прошивке & OS X/MacOS приложений. Оба написаны в Swift 2.2 &, преобразованные в 2.3.
Примечание: Я тестировал это только на OS X El Capitan 10.11.5.
@gabriellanata подтверждает, что он работает, когда код преобразуется в Swift 3.
Отладчик памяти несовместим с дезинфицирующим средством для потока. Вы не можете запускать оба одновременно. – tzm41
Полезно знать, что он доступен только для быстрого 3 ... –
Argument '-sanitize=address' is not supported on the Swift 2.3 toolchain.
You will need to migrate your project to Swift 3 to use this feature.
Xcode 8 GM построить ошибки
P.S. Objective-c, поддерживаемый Visual Debugger Visual
Если вы нажмете на «Память», панель редактора источника изменится, чтобы отобразить некоторую информацию о памяти, в том числе о том, почему она отключена. В моем случае это было связано с тем, что в схеме были включены объекты зомби. (Xcode 8.3.2)
Думаю, вам следует обновить свой проект, рекомендованный настройками Xcode 8. –
Вы видите какие-либо желтые треугольники (предупреждения), требующие обновления? –
Я просто нажал на них, но проблема не устранена. – PopKernel