as

Settings
Sign out
Notifications
Alexa
Amazonアプリストア
AWS
ドキュメント
Support
Contact Us
My Cases
開発
設計と開発
公開
リファレンス
サポート

Vega Studioを使用してアプリのクラッシュをデバッグする方法

Vega Studioを使用してアプリのクラッシュをデバッグする方法

Vega Studioでは、Fire TV Stick(デバイス)またはVega仮想デバイス(シミュレーター)で実行されているアプリの集約クラッシュレポート(ACR)を収集して分析できます。このプロセスには、ACRをコピーしてシンポリケートすることが含まれます。Vega向けReact Nativeアプリとターボモジュールのレポートを収集および分析できます。

ACRの概要

ACRは、Fire TVデバイスまたはVega仮想デバイスシミュレーターでアプリがクラッシュしたときに自動的に生成されるファイルです。ACRには、メモリアドレス、スタックトレース、システム情報など、未処理のクラッシュデータが含まれています。このデータは、クラッシュが発生したデバイスまたはシミュレーターにバイナリ形式で保存されます。

クラッシュを効果的に分析するには、次のことが必要です。

  1. デバイスまたはシミュレーターからACRをコピーする。
  2. ACRをシンボリケートして、メモリアドレスを、読み取り可能なコード参照に変換する。

    ACRはVega向けReact Nativeアプリと、ネイティブターボモジュールの両方に対して生成されます。

前提条件

  1. アプリがクラッシュしたときに生成されたACRファイル。
  2. デバッグシンボルまたはソースマップ(コードタイプによって異なります)。
  3. Ubuntu 22.04以降で開発する場合は、コンピューターにlibpython3.8がインストールされている。

    クリップボードにコピーしました。

    sudo add-apt-repository ppa:deadsnakes/ppa
    sudo apt update
    sudo apt install libpython3.8-dev
    
  4. binutilsがインストールされている。

    Macでは、次のコマンドを実行します。

    クリップボードにコピーしました。

    brew install binutils
    

    その後、画面の指示に従います。

    Ubuntuでは、次のコマンドを実行します。

    クリップボードにコピーしました。

    sudo apt install binutils 
    

ACRをコピーする

  1. ターゲットデバイスをコンピューターに接続します。

    Vegaは、接続されているデバイスをサイドバーに表示します。デバイスが表示されない場合は、[Refresh devices] ボタンをクリックします。デバイスを接続していない場合、デフォルトでVega仮想デバイスが選択されます。

  2. サイドバーから目的のターゲットデバイスを選択します。

  3. VS Codeでコマンドパレットを開きます。

    • Macの場合:shift + command ⌘ + p
    • Linuxの場合: Ctrl + Shift + P
  4. Kepler Device Management: Copy ACR from device」と入力します。

画面に「Vega Device Management: Copy ACR from device」の検索結果が表示されます。
VS CodeのコマンドパレットからVega Device Managementにアクセスします。
  1. アプリのパッケージIDを入力するか、デバイスまたはシミュレーターのプロセスIDを入力します。

    この情報はmanifest.tomlの[package]セクションで確認できます。

    パッケージIDはアプリの一意の識別子で、プロセスIDはデバイスまたはシミュレーターでアプリを実行する特定のプロセスを識別します。

  2. システムが複数のACRを検出した場合、次の2つのオプションがあります。

    • 利用可能なすべてのACRをダウンロードするには、[All] を選択します。
    • 最新のACRだけをダウンロードするには、[latest] を選択します。

    特定したプロセスIDまたはパッケージIDを使用して、選択したACRオプションでダウンロードを続行します。

  3. ACRを任意のフォルダに保存します。

ACRをシンボリケートする

アプリがクラッシュすると、メモリアドレスとスタックトレースを含むACRが生成されます。これらのトレースは、実際のコード参照ではなくメモリ位置のみを表示するため、読み取りは困難です。

シンボリケートすると、この難解なメモリアドレスが読み取り可能な情報に変換され、クラッシュが発生した正確なファイルと行番号が表示されます。

例:

シンボリケート前: 0x7ff8123456ab

シンボリケート後:my_function.ts:42

シンボリケートの起動

  1. VS Codeでコマンドパレットを開きます。

    • Macの場合:shift + command ⌘ + p
    • Linuxの場合: Ctrl + Shift + P
  2. Kepler Device Management: Symbolicate ACR」と入力してEnterキーを押します。

  3. ACRファイルを選択します。

シンボリケーションオプションの選択

Vega Studioから、シンボリケーションオプションを選択するよう求められます。ここでシンボリケーションオプションを選択する前に、package.jsonをチェックしてビルド構成を検証してください。react-native build-keplerの代わりにカスタムロジックを使用してJS HermesバイトコードバンドルまたはJSソースマップを生成する場合は、次の手順に従います。

  1. オプション2: 手動シンボリケーションに進みます。
  2. Metroで生成されたファイルが次の命名規則に従っていることを確認します。

    • JSプレーンテキストバンドル:index.bundle
    • JSソースマップ:*.bundle.map
    画面に2つのシンボリケーションオプションが表示されます。
    自動と手動のいずれかのシンボリケーションオプションを選択します。

オプション1: 自動シンボリケーション

Vega Studioによって、必要なすべての構成パラメーターが収集されます。ユーザーによる入力は不要です。終了すると、シンボリケートされたコールスタックがターミナルに表示されます。ネイティブコードの場合、GDBデバッグセッションが自動的に開きます。

  1. Vega Studioによってパラメーターが収集されるまで待機します。
  2. 不足しているパラメーターの入力を求められた場合、以下を行います。

    • リクエストを注意深く読みます。
    • リクエストされた情報を入力します。
    • [Continue] をクリックします。

    たとえば、自動ネイティブシンボリケート中に、デバイスが接続されていない場合、debug rootfsを指定するように求めるプロンプトが表示されます。

  3. 結果を確認します。

    • ターミナルでシンボリケートされたコールスタックを確認します。
    • ネイティブコードの場合、GDBデバッグセッションが自動的に開きます。
  4. ACRを表示します。

    • ネイティブコードの場合: GDBデバッグセッションを閉じると、システムによってACRレポートが自動生成されます。

    • JavaScriptコードの場合: システムによってACRレポートが自動生成されます。

    • Vega StudioによってACRレポートが自動的に開かれ、クラッシュの診断に役立つ処理済みの情報が表示されます。

オプション2: 手動シンボリケーション

手動モードでは、Vega StudioによってACRが解析されてコードタイプが検出されます。

  1. コードタイプが検出されるまで待機します。

    • ネイティブコードのみ - ネイティブワークフローを開始します。
    • 混合(ネイティブコードとJavaScriptコード)- デコードタイプを選択するよう求められます。
    画面にデコードタイプのオプションが表示されます。
    gdbとjsのいずれかのデコードタイプを選択します。
  2. デコードタイプを選択します(コードタイプ検出が混合の場合)。

    オプション1:gdb(ネイティブモード)- ネイティブコールスタックをシンボリケートする。

    このデコードタイプを使用する場合は、追加の手順についてネイティブモードを参照してください。

    オプション2:js(JavaScriptモード)- JavaScriptコールスタックをシンボリケートする。

    このデコードタイプを使用する場合は、追加の手順について JavaScriptモードを参照してください。

ネイティブモード

接続されたデバイスのシンボルソース、またはdebug rootfsの場所を選択するオプションが画面に表示されます。
デバッグシンボルのソースを選択します。
  1. シンボルソースを選択します。

    デバイスが接続されている場合、以下から選択します。

    • device - 接続されたデバイスからシンボルとライブラリを取得します。
    • debug rootfs - Vega Studioから、debug rootfsを指定するように求めるプロンプトが表示されます。

    デバイスが接続されていない場合は、プロンプトが表示されたらrootfsの場所を指定する必要があります。

    デバッグシンボルフォルダを追加するオプションが画面に表示されます。
    シンボリケーションプロセスにデバッグシンボルフォルダを追加します。
  2. デバッグシンボルフォルダを追加します。

    2.1. [Yes] を選択してフォルダを追加します。

    2.2. フォルダの場所を選択します。

    2.3. 上の操作を繰り返すか、[No] を選択して終了します。

    ターミナル出力に、関数名、ファイルパス、行番号を含むシンボリケートされたコールスタックが表示されます。
    ターミナル出力におけるシンボリケートされたコールスタック
  3. 結果を確認します。

    3.1.シンボリケートされたコールスタックをターミナルで見つけます。

    3.2.GDBデバッグセッションを使用します。

  4. ACRを表示します。

    GDBデバッグセッションを閉じると、システムによりACRが生成され、Vega Studioで表示されます。レポートには、問題の診断に役立つ処理済みのクラッシュ情報が含まれています。

JavaScriptモード

  1. ソースマップを指定します。

    1.1.ソースマップのプロンプトが表示されるまで待機します。

    1.2.プロンプトが表示されたら、[Browse] をクリックします。

    1.3. プロジェクトフォルダに移動します。

    1.4. [index.bundle.map] を選択します。

  2. その他のマップを追加します(任意)。

    2.1. プロンプトで [Yes] を選択してマップをさらに追加します。

    2.2. マップファイルの場所を選択します。

    2.3. 上の操作を繰り返すか、[No] を選択して終了します。

    ターミナル出力に、マップされたファイルの場所、関数名、元のソースコード行を含むJavaScriptスタックトレースが表示されます。
    ソースマッピングを使用したJavaScriptシンボリケーション結果
  3. シンボリケートされたコールスタックをターミナルで確認します。
  4. ACRを表示します。

    システムによりACRレポートが生成され、Vega Studioで自動的に開きます。レポートには、問題の診断に役立つ処理済みのクラッシュ情報が含まれています。

ACRに関するよくある問題

ACRの分析中に問題が発生した場合は、クラッシュ分析に関する問題の修正を参照してください。


Last updated: 2025年9月30日