Manuals
Manuals




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

Debugowanie na iOS/macOS

Tutaj opisujemy, jak debugować kompilację za pomocą Xcode, preferowanego przez Apple środowiska IDE do tworzenia aplikacji na macOS i iOS.

Xcode

  • Zbuduj pakiet aplikacji za pomocą bob, używając opcji --with-symbols (więcej informacji):
$ 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)"
  • Zainstaluj aplikację za pomocą Xcode, iTunes albo ios-deploy
$ ios-deploy -b <AppName>.ipa
  • Pobierz folder .dSYM (czyli symbole debugowania)

    • Jeśli projekt nie używa rozszerzeń natywnych (Native Extensions), możesz pobrać plik .dSYM z d.defold.com

    • Jeśli używasz rozszerzenia natywnego, folder .dSYM jest generowany podczas budowania za pomocą bob.jar. Wystarczy samo zbudowanie projektu, bez archiwizacji ani bundlowania:

$ 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>

Tworzenie projektu

Aby poprawnie debugować, potrzebujemy projektu oraz zmapowanego kodu źródłowego. Nie używamy tego projektu do budowania, a jedynie do debugowania.

  • Utwórz nowy projekt Xcode i wybierz szablon Game

    project_template

  • Wybierz nazwę (np. debug) i ustawienia domyślne

  • Wybierz folder, w którym chcesz zapisać projekt

  • Dodaj swój kod do aplikacji

    add_files

  • Upewnij się, że opcja Copy items if needed jest odznaczona.

    add_source

  • Oto efekt końcowy

    added_source

  • Wyłącz krok Build

    edit_scheme

    disable_build

  • Ustaw wersję Deployment target tak, aby była większa niż wersja iOS na Twoim urządzeniu

    deployment_version

  • Wybierz urządzenie docelowe

    select_device

Uruchamianie debuggera

Masz kilka opcji debugowania aplikacji:

  1. Wybierz Debug -> Attach to process... i wybierz z listy aplikację

  2. Albo wybierz Attach to process by PID or Process name

    select_device

  3. Uruchom aplikację na urządzeniu

  4. W Edit Scheme dodaj folder .app jako plik wykonywalny

Symbole debugowania

Aby użyć lldb, wykonanie musi być wstrzymane

  • Dodaj ścieżkę .dSYM do lldb
(lldb) add-dsym <PathTo.dSYM>
![add_dsym](/manuals/images/extensions/debugging/ios/add_dsym.png)
  • Sprawdź, czy lldb poprawnie wczytał symbole
(lldb) image list <AppName>

Mapowania ścieżek

  • Dodaj kod źródłowy silnika (zmień odpowiednio do własnych potrzeb)
(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
  • Folder zadania można ustalić na podstawie pliku wykonywalnego. Ten folder ma nazwę job1298751322870374150 i za każdym razem zawiera losowy numer.
$ dsymutil -dump-debug-map <executable> 2>&1 >/dev/null | grep /job

  • Sprawdź mapowania źródeł
(lldb) settings show target.source-map

Możesz sprawdzić, z którego pliku źródłowego pochodzi symbol, używając:

(lldb) image lookup -va <SymbolName>

Punkty przerwania

  • Otwórz plik w widoku projektu i ustaw punkt przerwania

    breakpoint

Uwagi

Sprawdzenie UUID pliku binarnego

Aby debugger zaakceptował folder .dSYM, UUID musi odpowiadać UUID debugowanego pliku wykonywalnego. Możesz sprawdzić UUID w ten sposób:

$ dwarfdump -u <PathToBinary>