Debuggen von iOS-Apps

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Debuggen von geräteübergreifenden Anwendungen

Mit RAD Studio können Sie in der IDE iOS-Apps, die auf dem iOS-Simulator (nur für Delphi verfügbar) oder dem iOS-Gerät ausgeführt werden, debuggen. Das Debuggen von iOS-Apps in der IDE entspricht weitgehend dem Debuggen von Windows- oder OS X-Anwendungen in RAD Studio. Die verfügbaren Debugger-Funktionen hängen aber von der jeweiligen Zielplattform und dem Betriebssystem ab. Der Debugger für die Zielplattform iOS-Simulator (OS X-Betriebssystem) verfügt beispielsweise über mehr Funktionen in der IDE als der Debugger für die Zielplattformen iOS-Gerät - 32 Bit und iOS-Gerät - 64 Bit (iOS-Betriebssystem).

In den folgenden Abschnitten ist die Verfügbarkeit von Debugger-Funktionen für den iOS-Simulator, für iOS-Gerät - 32 Bit und für iOS-Gerät - 64 Bit beschrieben.

iOS-Simulator: Debuggen von Apps, die auf dem iOS-Simulator ausgeführt werden

Im Allgemeinen umfasst dieser Debugger mehr Funktionen als der Debugger für das iOS-Gerät.

Auf dem iOS-Simulator werden Auswertung und Änderung von Eigenschaften vollständig unterstützt.

Hinweis: Das Debuggen von iOS-Simulator-Anwendungen ist nur für Delphi möglich.

iOS-Gerät: Debuggen von Apps, die auf dem iOS-Gerät ausgeführt werden

Die Funktionen der Debugger für 32-Bit-iOS-Geräte und 64-Bit-iOS-Geräte unterscheiden sich von denjenigen für Windows.

  • Methoden können nicht untersucht werden (wird nicht unterstützt).

Fenster "Module"

  • Der Funktionseintritt wird nicht unterstützt.
  • Die Spalten Eintrittspunkt und Adresse werden nicht mit Daten gefüllt (das Kontextmenü Eintrittspunkt ist leer).

Debug-Inspektor

  • Nur die Spalte Data wird gefüllt.
  • Methoden und Eigenschaften werden nicht angezeigt.

Auflösen von bfd_mach_o_scan_read-Fehlern

Nach der Aktualisierung auf ein neues SDK oder eine neue Betriebssystemversion können Warnungen wie die folgenden angezeigt werden:

bfd_mach_o_scan_read_symtab_symbol: symbol "_strcmp" is unsupported 'indirect' reference: setting to undefined
bfd_mach_o_scan_read_symtab_symbol: symbol "_bzero" is unsupported 'indirect' reference: setting to undefined
bfd_mach_o_scan_read_symtab_symbol: symbol "_strchr" is unsupported 'indirect' reference: setting to undefined
bfd_mach_o_scan_read_symtab_symbol: symbol "_memset_pattern16" is unsupported 'indirect' reference: setting to undefined
bfd_mach_o_scan_read_symtab_symbol: symbol "_memcpy" is unsupported 'indirect' reference: setting to undefined
bfd_mach_o_scan_read_symtab_symbol: symbol "_memcmp" is unsupported 'indirect' reference: setting to undefined
bfd_mach_o_scan_read_symtab_symbol: symbol "_memchr" is unsupported 'indirect' reference: setting to undefined
bfd_mach_o_scan_read_symtab_symbol: symbol "_memccpy" is unsupported 'indirect' reference: setting to undefined
bfd_mach_o_scan_read_symtab_symbol: symbol "_memset_pattern8" is unsupported 'indirect' reference: setting to undefined

Diese Warnungen treten auf, weil der Debugger SDK-Bibliotheken anstelle der aktuellen Gerätebibliotheken verwendet. Führen Sie Ihr iOS-Projekt aus Xcode iOS-Projektvorlagen (z. B. "Leere iOS-App") aus, um die Dateien wieder zu synchronisieren. Die Warnungen sollten danach nicht mehr angezeigt werden. Falls nicht, verschwinden die Warnungen, nachdem das Gerät auf die nächste Unterversion von iOS aktualisiert wurde. Diese Warnungen beeinträchtigen den Debug-Vorgang nicht.

Bei der Ausführung ohne Debugger wird eine iOS-App möglicherweise nicht beendet

Beim Ausführen einer App auf dem iOS-Gerät ohne Debugger verbleibt die App möglicherweise im Ausführungszustand, weil das iOS-Installationsprogramm noch mit dem Programm verbunden ist. Die iOS-App wird eventuell nicht beendet, wenn Sie sie schließen, weil der Debugger nicht ausgeführt wird, und die App daher nicht angehalten werden kann.

In diesem Fall sollten Sie die verbundene PAServer-Instanz auf dem Mac schließen. (Geben Sie an der PAServer-Eingabeaufforderung > den Befehl q ein.)

Debuggen von Apps, die auf dem 64-Bit-iOS-Gerät ausgeführt werden

Einige Funktionen, die beim Debuggen von Anwendungen für iOS-Gerät - 32 Bit zur Verfügung stehen, verhalten sich eventuell beim Debuggen von Anwendungen für iOS-Gerät - 64 Bit unterschiedlich:

  • Der Debugger unterstützt die Auswertung vieler Delphi-Typen, wie dynamische Arrays oder Objekte mit virtuellen von TObjectabgeleiteten Methoden, nicht.
  • Tooltips sind deaktiviert.
  • Die Delphi-Syntax wird beim Auswerten von Delphi-Ausdrücken nicht vollständig unterstützt; verwenden Sie als Problemumgehung die C++-Syntax.
  • Delphi-Bezeichner berücksichtigen die Groß-/Kleinschreibung; Sie müssen bei der Auswertungdieselbe Schreibweise verwenden.
  • Der Schutz vor Auswertungen, die Exceptions auslösen können, wird nicht unterstützt; achten Sie darauf, keine Funktionen auszuwerten, die auf nicht initialisierte Daten zugreifen oder Exceptions auslösen.

Wenn Sie beim Debuggen die oben aufgeführten Optionen benötigen, empfehlen wir Ihnen, falls möglich, als Zielplattform iOS-Gerät 32-Bit festzulegen, um das Debugging durchzuführen.

Siehe auch