This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English
Здесь мы описываем, как отлаживать сборку с помощью Xcode, предпочитаемой компанией Apple IDE для разработки под macOS и iOS.
--with-symbols
$ cd myproject
$ wget http://d.defold.com/archive/<sha1>/bob/bob.jar
$ java -jar bob.jar --platform armv7-darwin build --with-symbols --variant debug --archive bundle -bo build/ios -mp <app>.mobileprovision --identity "iPhone Developer: Your Name (ID)"
Xcode
, iTunes
или ios-deploy$ ios-deploy -b <AppName>.ipa
Получите папку .dSYM
(т.е. отладочные символы)
Если приложение не использует нативные расширения, вы можете скачать файл .dSYM
с сайта d.defold.com
Если вы используете нативные расширения, то папка .dSYM
генерируется при сборке с помощью утилиты bob.jar. Требуется только сборка (без архивации и бандлинга):
$ cd myproject
$ unzip .internal/cache/arm64-ios/build.zip
$ mv dmengine.dSYM <AppName>.dSYM
$ mv <AppName>.dSYM/Contents/Resources/DWARF/dmengine <AppName>.dSYM/Contents/Resources/DWARF/<AppName>
Для правильной отладки нам нужен проект и сопоставленный исходный код. Мы не используем этот проект для сборки, а только для отладки.
Создайте новый проект Xcode, выберите шаблон Game
Выберите имя (например, debug
) и настройки по умолчанию
Выберите папку для сохранения в неё проекта
Добавьте свой код в приложение
Убедитесь, что флажок «Copy items if needed» снят.
Таков конечный результат
Отключите шаг Build
Установите версию Deployment target
, чтобы она была больше, чем версия вашего iOS устройства.
Выберите целевое устройство
У вас есть несколько вариантов отладки приложения
Либо выберите Debug
-> Attach to process...
и выберите оттуда приложение.
Либо выберите Attach to process by PID or Process name
.
Запустите приложение на устройстве
В Edit Scheme
добавьте папку
Чтобы использовать lldb, выполнение должно быть приостановлено
.dSYM
к lldb(lldb) add-dsym <PathTo.dSYM>

lldb
успешно прочитал символы(lldb) image list <AppName>
(lldb) settings set target.source-map /Users/builder/ci/builds/engine-ios-64-master/build /Users/mathiaswesterdahl/work/defold
(lldb) settings append target.source-map /private/var/folders/m5/bcw7ykhd6vq9lwjzq1mkp8j00000gn/T/job4836347589046353012/upload/videoplayer/src /Users/mathiaswesterdahl/work/projects/extension-videoplayer-native/videoplayer/src
job1298751322870374150
, каждый раз это имя со случайным номером.
```sh
$ dsymutil -dump-debug-map
* Проверьте сопоставления исходников
(lldb) settings show target.source-map
Вы можете проверить, из какого исходного файла происходит отладочный символ, используя команду
(lldb) image lookup -va
### Точки останова
* Откройте файл в project view и установите точку останова

## Примечания
### Проверка UUID бинарного файла
Чтобы отладчик пустил папку `.dSYM`, UUID должен совпадать с UUID отлаживаемого исполняемого файла. Вы можете проверить UUID так:
```sh
$ dwarfdump -u <PathToBinary>
Did you spot an error or do you have a suggestion? Please let us know on GitHub!
GITHUB