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
여기서는 Apple이 macOS와 iOS 개발에 권장하는 IDE인 Xcode를 사용해 빌드를 디버깅하는 방법을 설명합니다.
--with-symbols 옵션을 사용해 bob으로 앱을 번들링합니다(자세한 정보).$ 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 폴더(debug symbols)를 가져옵니다.
네이티브 익스텐션을 사용하지 않는다면 d.defold.com에서 .dSYM 파일을 다운로드할 수 있습니다.
네이티브 익스텐션을 사용한다면 bob.jar로 빌드할 때 .dSYM 폴더가 생성됩니다. 빌드만 필요합니다(아카이브나 번들링은 필요하지 않음).
$ 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>