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 середовища розробки для 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, щоразу з випадковим числом.$ dsymutil -dump-debug-map <executable> 2>&1 >/dev/null | grep /job
(lldb) settings show target.source-map
Ви можете перевірити, з якого файлу вихідного коду походить символ, за допомогою
(lldb) image lookup -va <SymbolName>
Відкрийте файл у поданні проєкту та встановіть точку зупину

Щоб налагоджувач прийняв папку .dSYM, її UUID має збігатися з UUID виконуваного файлу, який ви налагоджуєте. Перевірити UUID можна так:
$ dwarfdump -u <PathToBinary>