マルチデバイス アプリケーションのデバッグ

提供: Appmethod Topics
移動先: 案内検索

マルチデバイス アプリケーション への移動

マルチデバイス アプリケーション デバッグのアーキテクチャ

Mac OS X アプリケーションのデバッグ

RemoteDebugMac2a.jpg

Mac OS X プラットフォームでは、デバッガにファイル権限が必要です。Mac OS X 上のデバッグは特権が必要な操作であるため、適切なアクセス権を持つプロセスだけがデバッガとして動作できます。詳細は、「Mac 上でのデバッグをサポートする権限の取得」を参照してください。

Mac OS X アプリケーション開発についての詳細は、「Mac OS X のアプリケーション開発」を参照してください。

iOS アプリケーションのデバッグ

RemoteDebugiOS.jpg

  • ターゲット プラットフォームが iOS シミュレータ32 ビット iOS デバイス64 ビット iOS デバイスのデバッグの場合は、従来のデバッガ機能が一部使用できません。詳細は、「iOS アプリケーションのデバッグ」を参照してください。

Android アプリケーションのデバッグ

RemoteDebugAndroid.png

Appmethod 統合デバッガ

Appmethod の統合デバッガを利用すると、サポートされているターゲット プラットフォーム向けアプリケーションをデバッグできます。統合デバッガでは、Object Pascal アプリケーションと C++ アプリケーションの両方をサポートしていますが、C++ 64 ビット Windows プラットフォームと Object Pascal iOS および Android プラットフォームは対象外です。

Appmethod では、以下のデバッガをサポートしています。これらは特定のターゲット プラットフォーム上で動作します。

  • Object Pascal 用 Embarcadero Win64 デバッガ(64 ビット版 Windows OS で動作している PC)
  • C++ 用 Embarcadero Win64 デバッガ(64 ビット版 Windows OS で動作している PC)
  • Embarcadero OS X デバッガ(OS X で動作している Mac)
  • iOS シミュレータ用 Embarcadero iOS デバッガ(Mac)
  • 32 ビット iOS デバイス用 Embarcadero iOS32 デバッガ(接続された 32 ビットまたは 64 ビット iOS デバイス)
  • 64 ビット iOS デバイス用 Embarcadero iOS64 デバッガ(接続された 64 ビット iOS デバイス)
  • Embarcadero Android デバッガ(接続された Android デバイス)

ヘルプに記載されているとおり、開発環境を準備するときに、該当する Embarcadero デバッガがインストールされます。たとえば、「Mac OS X のアプリケーション開発」の手順に従うと、プラットフォーム アシスタントおよび Mac OS X デバッガが Mac にインストールされます。同様に、「iOS モバイル アプリケーション開発」の手順に従うと、PAServer と Appmethod iOS デバッガが、ターゲット プラットフォーム(iOS)をサポートする中間プラットフォームである Mac にインストールされます。システムに登録されている Embarcadero デバッガは、 [ツール|オプション...|デバッガ オプションで一覧表示できます。

メモ: Mac OS X、iOS、Android、および 64 ビット Windows(開発用システムが 32 ビット Windows の場合)向けマルチデバイス アプリケーションをデバッグするには、このトピックで説明する新しいデバッグ方法をお勧めします。その場合、特定のマルチデバイス デバッガ(ターゲット プラットフォーム上で動作)と IDE に統合されたデバッガとを使用することになります。
古い形式のリモート デバッグ方法もまだサポートされているため、その方法でもマルチデバイス デバッガをインストールし実行できますが、マルチデバイス アプリケーション向けの古い形式のリモート デバッグ方法は現在ヘルプには記述されていません。

Win32 のリモート デバッグに関するメモ: すべてのリモート デスクトップ デバッグに対して、従来の(古い形式の)リモート デバッガをオプションで使い続けることができます。ただし、以前と同様に、ターゲット プラットフォームに手動でファイルをコピーする必要があることを忘れないでください。古い形式のリモート デバッガを使用する際の手順については、「リモート デバッグの概要」とそれに関連する手順を参照してください。古い形式のリモート デバッグ方法は、Win32 のリモート デバッグ(以前と同様)と、Win64 や Mac OS X のアプリケーションのデバッグの両方に使用できます。ただし、このヘルプでは、マルチデバイス デバッグに古い形式のリモート デバッガを使用する方法についてはまだ詳しく説明していません。

Appmethod でのマルチデバイス デバッグの要件

  • Mac OS X32 ビット iOS デバイス64 ビット iOS デバイス、または iOS シミュレータのターゲット プラットフォーム上で実行中のアプリケーションに対してデバッグ セッションを確立するには、プラットフォーム アシスタント接続プロファイルが必要です。
    Android ターゲット プラットフォームとインシステム Win64 ターゲット プラットフォームには、プラットフォーム アシスタントや接続プロファイルはどちらも必要ありません。
  • Android デバイスで実行中のアプリケーションには、Android 開発ツールが必要です。この Android 開発ツールは、本製品のインストーラによってデフォルトでインストールされます。
  • 一部のターゲット プラットフォームでは、IDE に SDK を追加することも必要です。これについては、「マルチデバイス デバッグの要件」のセクションで説明します。
    • たとえば、Android アプリケーションには、IDE に Android SDK を追加することが必要です。詳細については、「[SDK マネージャ]」を参照してください。

通常、デバッガとデバッグ対象プロセスは、どちらもターゲット プラットフォームで実行されます。これは、iOS デバイスと Android デバイスには当てはまります。 ただし、どのような場合でもデバッガは、Appmethod IDE で、ステータスを報告したり、開発用 PC上のユーザーとやり取りをします。つまり、マルチデバイス デバッガの 1 つを使用することは、Win32 アプリケーション用の統合デバッガを使用することに非常に良く似ています。デバッグに関する共通の大まかな情報については、「デバッグの概要」を参照してください。

マルチデバイス デバッグを実行するには、以下の要件を満たさなければなりません。

  • アプリケーションのターゲット プラットフォームがアクティブになっていなければなりません。
    • 64 ビット Windows(開発用 PC が 32 ビット Windows)
    • Mac OS X
    • iOS(Object Pascal では iOS シミュレータまたは 2 つの iOS デバイス プラットフォームをサポート。C++ では 2 つの iOS デバイス プラットフォームのみサポート)
    • Android(Android デバイス)
    • リモートの 32 ビットまたは 64 ビット Windows
  • ターゲット プラットフォームに応じて、以下の要件を満たさなければなりません。
    • Mac OS X および iOS プラットフォームの場合:
      • プラットフォーム アシスタントMac 上で動作している必要があります。
      • アプリケーションはプロビジョニングやコード署名がなされ、接続プロファイルが関連付けられている必要があります。
      • 開発用システムは Mac との接続を確立していなければなりません(つまり、[接続プロファイル マネージャ]ウィンドウで[接続テスト]が成功しなければなりません)。
        この接続によって、統合デバッガと配置マネージャの両方を使用できるようになります。
      • さらに、iOS デバイスの 2 つのプラットフォームの場合、プロビジョニングされた iOS デバイスを USB ケーブルで Mac と接続しておく必要があります。
        メモ: [アドホック]または[アプリケーション ストア]のプラットフォーム構成でコンパイルされた iOS アプリケーションを、統合デバッガを使ってデバッグすることはできません。
    • Android ターゲット プラットフォームの場合:
      メモ: Appmethod のインストーラは、デフォルトでこれらの要件を満たします。
    • 32 ビット版 Windows プラットフォームの場合:
      • デバッグ環境がマシン内に組み込まれており、統合デバッガが自動的に実行されるため、プラットフォーム アシスタントを使用する必要はありません。ただし、32 ビット Windows アプリケーションのリモート デバッグを行う場合、[プロジェクト|オプション...|Object Pascal コンパイラ|リンク][リモート デバッグ シンボルを含める]オプションを True に設定する必要があります。
    • 64 ビット版 Windows プラットフォームの場合:
      • リモートの 64 ビット PC に接続中の場合:
        • プラットフォーム アシスタントと接続プロファイルを使用しなければなりません。
        • 開発用システムがリモートの 64 ビット PC との接続を確立していなければなりません(つまり、[接続プロファイル マネージャ]ウィンドウで[接続テスト]が成功しなければなりません)。この接続によって、統合デバッガと配置マネージャの両方を使用できるようになります。
      • 開発用システムが 64 ビット版 Windows オペレーティング システムで動作中の PC である場合:
        • デバッグ環境がマシン内に組み込まれており、統合デバッガが自動的に実行されるため、プラットフォーム アシスタントを使用する必要はありません。
        • ただし、リモートの 64 ビット版 Windows ターゲット システムの場合と同様に、プラットフォーム アシスタントと接続プロファイルの使用をオプションで選択できます。これを選択すると、配置マネージャを利用できます。
    • 以下のプラットフォームおよびアプリケーションの種類に該当する場合には、SDK が必須です([SDK マネージャ]で設定します)。
      • Mac OS X プラットフォーム向けの FireMonkey C++ マルチデバイス アプリケーション
      • 32 ビット iOS デバイスおよび 64 ビット iOS デバイス プラットフォーム向けの FireMonkey Object Pascal マルチデバイス アプリケーション
      • Android プラットフォーム向けの FireMonkey Object Pascal マルチデバイス アプリケーション

Appmethod C++ 64 ビット Windows でのデバッグ

C++ 64 ビット Windows アプリケーションのデバッグの場合は、一部のデバッガ機能が使用できません。

詳細は、「Appmethod C++ 64 ビット Windows アプリケーションのデバッグ」を参照してください。

[実行]コマンドによるデバッガの起動

マルチデバイス デバッグの要件がすべて満たされたら、[実行]コマンドを入力すると以下の処理が実行されます。

  • ホスト PC と、接続プロファイルで指定されているターゲット マシンとの間で、必要なファイルがコピーされます。
  • プラットフォームに必要な適切なデバッガでアプリケーションが実行されます。

たとえば、OS X がアクティブなターゲット プラットフォームの場合、実行可能ファイルが Mac にコピーされます。

マルチデバイス アプリケーション(OS X または Win64)のデバッグを開始するには、以下の標準の[実行]コマンドのどれを実行してもかまいません。

[プロセスにアタッチ]や[プロセスの読み込み|リモート]を使用したデバッガの起動

コンパイル済みのバイナリをプラットフォーム アシスタント サーバーが稼働しているマシン(リモート PC または Mac)上で実行してデバッグするには、以下のコマンドを使用できます。

  • ローカルまたはリモートで実行中のプロセスをデバッグするには、[プロセスにアタッチ]を使用します。ここでは、プラットフォーム アシスタントと接続プロファイルを使用することをお勧めします。[プロセスにアタッチ]ダイアログ ボックスの説明で示されているとおり、一部のプラットフォームではサポートされていません。
    メモ: 実行中のプロセスへのアタッチは、Embarcadero iOS32 デバイス デバッガEmbarcadero iOS64 デバイス デバッガ、または Embarcadero Android デバッガではサポートされていません。
  • ローカルのデバッグ対象プロセスを読み込むには、[プロセスの読み込み|ローカル]を実行します。
    メモ: [プロセスの読み込み|ローカル]は、Embarcadero iOS32 デバイス デバッガEmbarcadero iOS64 デバイス デバッガ、または Embarcadero Android デバッガではサポートされていません。
  • リモートのマシンでデバッグ対象プロセスを読み込んで実行するには、[プロセスの読み込み|リモート]を実行します。ただし、接続プロファイルに関していくつかの制限があります。[プロセスの読み込み|リモート]ダイアログ ボックスの説明で示されているとおり、一部のプラットフォームではサポートされていません。
    メモ: [プロセスの読み込み|リモート] は、Embarcadero Android デバッガではサポートされていません。
    ここでは、プラットフォーム アシスタント接続プロファイルを使用することをお勧めします。

[プロセスの読み込み]でのタイミングの問題

実行直後にクラッシュする Mac OS X アプリケーションを[プロセスの読み込み]を使ってデバッグする際に問題がある場合は、[読み込み後]の選択肢の中から[実行しない][プログラム エントリ ポイントまで実行する][プログラム エントリ ポイントまで実行する]のどちらかのオプションを選択してください。このどちらのオプションを指定しても、アプリケーションが実行されデバッグ イベントをヒットする時点と、デバッガがセットアップされイベントを処理する用意ができる時点とのタイミングの問題を解決できます。これらのタイミングの問題は、デバッガがハングする原因となるおそれがあります。

関連項目