Debuggen von geräteübergreifenden Anwendungen

Aus Appmethod Topics
Wechseln zu: Navigation, Suche

Nach oben zu Geräteübergreifende Anwendungen

Architektur des geräteübergreifenden Debuggens

Debuggen von Mac OS X-Anwendungen

RemoteDebugMac2a.jpg

Auf der Mac OS X-Plattform benötigt der Debugger Dateiberechtigungen. Für das Debuggen unter Mac OS X sind spezielle Berechtigungen erforderlich; nur ein Prozess mit den adäquaten Zugriffsrechten kann als Debugger fungieren. Weitere Informationen finden Sie unter Übernahme der Berechtigung zur Debugging-Unterstützung auf einem Mac.

Einzelheiten über die Entwicklung von Mac OS X-Apps finden Sie unter Mac OS X-Anwendungsentwicklung.

Debuggen von iOS-Apps

RemoteDebugiOS.jpg

  • Beim Debuggen auf den Zielplattformen iOS-Simulator und iOS-Gerät stehen einige herkömmliche Debugger-Funktionen nicht zur Verfügung. Weitere Informationen finden Sie unter Debuggen von iOS-Apps.

Debuggen von Android-Anwendungen

RemoteDebugAndroid.png

Der in Appmethod integrierte Debugger

Mit dem in Appmethod integrierten Debugger können Sie eine Anwendung debuggen, die für eine der unterstützten Zielplattformen konzipiert ist. Der integrierte Debugger unterstützt Object Pascal- und C++-Anwendungen mit Ausnahme der C++-64-Bit-Windows-, Object Pascal-iOS- und Android-Plattformen.

Appmethod unterstützt die folgenden Debugger, die auf der jeweiligen Zielplattform ausgeführt werden:

  • Embarcadero Win64-Debugger für Object Pascal (auf einem PC mit einem 64-Bit-Windows-Betriebssystem)
  • Embarcadero Win64-Debugger für C++ (auf einem PC mit einem 64-Bit-Windows-Betriebssystem)
  • Embarcadero OS X-Debugger (auf einem Mac mit einer Version von OS X)
  • Embarcadero iOS-Debugger für den iOS-Simulator (auf einem Mac)
  • Embarcadero iOS-Debugger für das iOS-Gerät (auf einem angeschlossenen iOS-Gerät)
  • Embarcadero Android-Debugger (auf dem Entwicklungssystem für den Android-Emulator; auf einem angeschlossenen Android-Gerät für das Android-Gerät)

Die geeigneten Embarcadero-Debugger werden installiert, wenn Sie Ihre Entwicklungsumgebung wie in der Hilfe beschrieben vorbereiten. Wenn Sie beispielsweise die Schritte für die Mac OS X-Anwendungsentwicklung ausführen, werden der Platform Assistant und der Mac OS X-Debugger auf Ihrem Mac installiert. Genauso werden beim Ausführen der Schritte für die mobile iOS-Anwendungsentwicklung PAServer und der iOS-Debugger von Appmethod auf Ihrem Mac als Zwischenplattform installiert, die Ihre Zielplattform (iOS) unterstützt. Die auf Ihrem System registrierten Embarcadero-Debugger sind auf der Seite Tools > Optionen > Debugger-Optionen aufgeführt.

Hinweis: Die neue Debugging-Lösung, die in diesem Thema beschrieben wird, ist die empfohlene Lösung für das geräteübergreifende Anwendungs-Debugging für Mac OS X, iOS, Android und 64-Bit-Windows (von einem 32-Bit-Windows-Entwicklungssystem aus). In diesem Szenario verwenden Sie den jeweiligen geräteübergreifenden Debugger (der auf der Zielplattform ausgeführt wird) zusammen mit dem integrierten Debugger in der IDE.
Die alte Lösung für das Remote-Debuggen wird weiterhin unterstützt und kann optional zum Installieren und Ausführen der geräteübergreifenden Debugger verwendet werden. Diese alte Debugging-Lösung für geräteübergreifende Anwendungen ist aber gegenwärtig nicht dokumentiert.

Hinweis zum Remote-Win32-Debuggen: Sie können weiterhin den vorhandenen (alten) Remote-Debugger für das Remote-Desktop-Debuggen verwenden. Bedenken Sie dabei aber, dass Sie – wie früher – alle Dateien manuell auf die Zielplattform kopieren müssen. Informationen zur Verwendung des alten Remote-Debuggers finden Sie unter Überblick zum externen Debugger und in den zugehörigen Anleitungen. Mit der alten Remote-Debugging-Lösung können sowohl Win32- (wie früher) als auch Win64- und Mac OS X-Anwendungen gedebuggt werden. Die Hilfe enthält jedoch keine detaillierten Informationen über die Verwendung des alten Remote-Debuggers für geräteübergreifendes Debuggen.

Anforderungen für das geräteübergreifende Debuggen in Appmethod

  • Für Anwendungen, die entweder auf einer Mac OS X- oder iOS-Gerät/iOS-Simulator-Zielplattform ausgeführt werden, sind der Platform Assistant und ein Verbindungsprofil erforderlich, um eine Debug-Sitzung einzurichten.
    Für die Android-Zielplattform und die systeminterne Win64-Zielplattform werden weder der "Platform Assistant" noch ein Verbindungsprofil benötigt.
  • Für eine Anwendung, die entweder auf einem Android-Emulator oder einem Android-Gerät ausgeführt wird, sind die Android-Entwicklungstools erforderlich; das Installationsprogramm des Produkts installiert die Android-Entwicklungstools standardmäßig. Die Android-Entwicklungstools enthalten das Android SDK, Android NDK und das JDK.
  • Für einige Zielplattformen ist es erforderlich, dass Sie in der IDE ein SDK hinzufügen, wie im nächsten Abschnitt Anforderungen für geräteübergreifendes Debuggen beschrieben.

Normalerweise werden sowohl der Debugger als auch der zu debuggende Prozess auf der Zielplattform ausgeführt. Das gilt für das iOS-Gerät und das Android-Gerät. In jedem Fall meldet der Debugger aber den Status und interagiert mit Ihnen auf dem Entwicklungs-PC in der Appmethod-IDE. Das bedeutet, dass die Verwendung der geräteübergreifenden Debugger weitgehend der Verwendung des integrierten Debuggers für Win32-Anwendungen entspricht. Allgemeine weiterführende Informationen über das Debuggen finden Sie unter Überblick zum Debuggen.

Voraussetzungen für das geräteübergreifende Debuggen:

  • Für Ihre Anwendung muss eine Zielplattform aktiviert sein:
    • 64-Bit-Windows (auf einem 32-Bit-Windows-Entwicklungs-PC)
    • Mac OS X
    • iOS (Object Pascal unterstützt entweder iOS-Simulator oder iOS-Gerät; C++ unterstützt nur das iOS-Gerät)
    • Android (entweder Android-Emulator oder Android-Gerät)
    • Remotes 32-Bit-Windows oder 64-Bit-Windows
  • Zielplattformabhängig:
    • Für Mac OS X- und iOS-Plattformen:
      • Der Platform Assistant muss auf dem Mac ausgeführt werden.
      • Ihre Anwendung muss bereitgestellt sein, mit einer Codesignatur versehen sein und ein zugeordnetes Verbindungsprofil haben.
      • Ihr Entwicklungssystem muss über eine Live-Verbindung zu dem Mac verfügen (d. h. Verbindung testen auf der Seite Verbindungsprofil-Manager muss erfolgreich sein).
        Bei dieser Verbindung können Sie den integrieren Debugger und den Bereitstellungs-Manager verwenden.
      • Zusätzlich muss für die Plattform iOS-Gerät ein bereitgestelltes iOS-Gerät über ein USB-Kabel mit dem Mac verbunden sein.
        Hinweis: Mit dem integrierten Debugger können Sie keine iOS-Apps debuggen, die für die Plattformkonfiguration Ad-hoc oder Anwendungs-Store compiliert wurden.
    • Für die Android-Zielplattform:
    • Für die 64-Bit-Windows-Plattform:
      • Bei einer Verbindung zu einem Remote-64-Bit-PC:
        • Sie müssen den "Platform Assistant" und ein Verbindungsprofil verwenden.
        • Ihr Entwicklungssystem muss über eine Live-Verbindung zu dem Remote-64-Bit-PC verfügen (d. h. Verbindung testen auf der Seite Verbindungsprofil-Manager muss erfolgreich sein). Bei dieser Verbindung können Sie den integrieren Debugger und den Bereitstellungs-Manager verwenden.
      • Bei einem PC-Entwicklungssystem mit einem 64-Bit-Windows-Betriebssystem:
        • Sie müssen den "Platform Assistant" nicht verwenden, weil Ihre Debug-Umgebung sich auf dem Computer befindet, und der integrierte Debugger automatisch ausgeführt wird.
        • Sie können aber optional den "Platform Assistant" und ein Verbindungsprofil auswählen, genauso wie für ein Remote-Zielsystem mit 64-Bit-Windows. Dadurch haben Sie die Möglichkeit, den Bereitstellungs-Manager zu verwenden.
    • Ein SDK ist für die folgenden Plattformen und Anwendungstypen erforderlich (im SDK-Manager):
      • Geräteübergreifende FireMonkey-C++-Anwendungen für die Plattform Mac OS X
      • Geräteübergreifende FireMonkey-Object Pascal-Anwendungen für die Plattform iOS-Gerät
      • Geräteübergreifende FireMonkey-Object Pascal-Anwendungen für die Plattform Android

Debuggen mit Appmethod C++ für 64-Bit-Windows

Beim Debuggen einer C++-Anwendung für 64-Bit-Windows sind einige Debugger-Funktionen nicht verfügbar.

Weitere Informationen finden Sie unter Debuggen von Appmethod C++-Anwendungen für 64-Bit-Windows und "Hinweise zum Debugger" im Readme (Release-Hinweise).

Starten des Debuggers mit einem "Start"-Befehl

Wenn alle Anforderungen für geräteübergreifendes Debuggen erfüllt sind, wird durch Eingabe des Befehls Start Folgendes ausgeführt:

  • Die benötigten Dateien werden vom Host-PC auf den im Verbindungsprofil angegebenen Zielcomputer kopiert.
  • Die Anwendung wird in einem für die Plattform geeigneten Debugger ausgeführt.

Wenn beispielsweise OS X die aktive Plattform ist, wird die ausführbare Datei auf den Mac kopiert.

Sie können mit einem beliebigen Standard-Start-Befehl das Debuggen einer geräteübergreifenden Anwendung (für OS X oder Win64) starten:

Starten des Debuggers mit "Mit Prozess verbinden" und "Prozess laden: Extern"

Zum Ausführen und Debuggen einer compilierten Binärdatei auf einem Computer mit dem Platform Assistant-Server (entweder einem Remote-PC oder einem Mac), können Sie die folgenden Befehle verwenden:

  • Mit Prozess verbinden, um einen lokal oder remote ausgeführten Prozess zu debuggen. Hier wird die Verwendung des Platform Assistant und eines Verbindungsprofils empfohlen. Einige Plattformen werden nicht unterstützt, wie im Dialogfeld Mit Prozess verbinden angegeben.
    Hinweis: Eine Verbindung mit einem ausgeführten Prozess wird für den Embarcadero iOS-Geräte-Debugger oder den Embarcadero Android-Debugger nicht unterstützt.
  • Prozess laden: Lokal, um einen lokalen Debug-Prozess zu laden.
    Hinweis: "Prozess laden: Lokal" wird für den Embarcadero iOS-Geräte-Debugger oder den Embarcadero Android-Debugger nicht unterstützt.
  • Prozess laden: Extern, um einen Debug-Prozess zu laden und ihn auf einem Remote-Computer auszuführen (mit einigen Einschränkungen bezüglich Verbindungsprofilen). Einige Plattformen werden nicht unterstützt, wie im Dialogfeld Prozess laden: Extern angegeben.
    Hinweis: "Prozess laden: Extern" wird nicht für den Embarcadero Android-Debugger unterstützt.
    Hier wird die Verwendung des Platform Assistant und eines Verbindungsprofils empfohlen.

Probleme mit der zeitlichen Steuerung bei "Prozess laden"

Wenn beim Debuggen einer Mac OS X-App die App sofort nach dem Aufruf von Prozess laden abstürzt, sollten Sie entweder die Option "Nicht ausführen" oder "Bis zu Programmeintrittspunkt ausführen" (Auswahlmöglichkeiten unter "Nach dem Laden") auswählen. Durch beide Optionen können Probleme mit der zeitlichen Steuerung behoben werden, die auftreten, wenn die App ausgeführt wird und auf Debug-Ereignisse trifft und der Debugger noch nicht eingerichtet und bereit zur Verarbeitung der Ereignisse ist. Diese Probleme bei der zeitlichen Steuerung können dazu führen, dass der Debugger hängen bleibt.

Siehe auch