Amazon Developer

as

Settings
Sign out
Notifications
Alexa
Amazonアプリストア
Ring
AWS
ドキュメント
Support
Contact Us
My Cases
開発
設計と開発
公開
リファレンス
サポート
メインコンテンツへスキップ
Fire TV StickまたはVega仮想デバイスでVega向けReact Nativeアプリやターボモジュールがクラッシュすると、集約クラッシュレポート(ACR)ファイルが生成されます。アプリがクラッシュした正確な場所と理由を特定するには、このファイルを取得し、Vega Studioを使用してシンボリケートします。 Amazon Devices Builder Tools MCPサーバーにも、AIエージェントを通じてACRのシンボリケーションプロセスを実行できるツールが用意されています。詳細については、AI支援クラッシュ分析を参照してください。 ACRファイルには、次の3つのメインセクションがあります。
  • メタデータ - クラッシュの検索可能な詳細。プロセス名、クラッシュ時刻、デバイス情報が含まれます。
  • クラッシュ情報 - クラッシュ時のメモリ使用量やデバイスログなどのシステム状態データ。
  • ダンプセクション - エンコードされたクラッシュ状態データ。読みやすくするにはシンボリケーションが必要です。
シンボリケーションでは、エンコードされたダンプセクションを、次のように読みやすいコード参照に変換します。 シンボリケート前:
シンボリケート後:
各行は、file:function:line_number という形式になります。 この変換により、アプリのクラッシュが発生したファイル、関数、行番号を正確に特定できます。

前提条件

  • アプリがクラッシュしたときに生成されたACRファイル
  • デバッグシンボルまたはソースマップ(コードタイプによって異なります)

クイックリファレンス

次のクイックリファレンスを使用して、状況に応じた適切なシンボリケート方法を選択してください。

ACRの取得とシンボリケート

クラッシュレポートを取得してシンボリケートするには、次の2つの方法があります。
  • デバイスサイドバーから: デバイスのファイルを参照し、直接シンボリケートします。
  • コマンドパレットから: ACRをコンピューターにコピーし、シンボリケートします。
どちらの方法でも、デバイスが接続されている必要があります。Vega Studioは、接続されているデバイスをサイドバーに表示します。デバイスが表示されない場合は、[Refresh devices] ボタンをクリックします。接続されているデバイスがない場合、Vega StudioはデフォルトでVega仮想デバイスを選択します。 デバイスの接続方法については、Vega仮想デバイスまたはFire TV Stickでのアプリの実行を参照してください。

デバイスサイドバーから

  1. Vega Studioのサイドバーで、接続されているデバイスを見つけます。 Vega Studioのサイドバーに表示された接続されているデバイスのスクリーンショット。
  2. デバイスのコンテキストメニューを開き、[Show Device Files] を選択します。 Vega Studioにデバイス上のファイルが表示されます。
  3. アプリのクラッシュファイルに移動します。
  4. 分析するクラッシュファイルのコンテキストメニューを開きます。 デバイスのファイルビューを示すスクリーンショット。クラッシュファイルと右クリックのコンテキストメニューが表示されています。
  5. [Symbolicate ACR] を選択します。 Vega Studioによって自動的にクラッシュレポートがシンボリケートされ、結果が表示されます。
✓ 成功: 判読可能なファイルパスと行番号を含むシンボリケートされたクラッシュレポートが開き、アプリがクラッシュした正確な場所が示されます。

コマンドパレットから

  1. VS Codeでコマンドパレットを開きます。
    • Macの場合:Shift+Command ⌘+P
    • Linuxの場合:Ctrl+Shift+P
  2. 「Vega Device Management: Copy ACR from device」と入力します。
  3. 複数のデバイスが接続されている場合は、一覧からターゲットデバイスを選択します。
  4. パッケージIDpackage idまたはプロセスIDprocess idを入力します。
    • パッケージID(推奨):アプリのACRをすべて取得するには、これを使用します。この値は、manifest.tomlファイルの[package]セクションで確認できます(com.example.myappなど)。
    • プロセスID:特定のアプリインスタンスのACRを取得するには、これを使用します。デバイスの実行中のプロセスから取得します(12345など)。
    よくわからない場合は、パッケージIDを選択してください。その場合、どのプロセスインスタンスがクラッシュしたかに関係なく、アプリのクラッシュがすべてキャプチャされます。
  5. システムで複数のACRが見つかった場合は、ダウンロードするACRを選択します。
    • 利用可能なすべてのACRをダウンロードするには、[All] を選択します。
    • 最新のACRだけをダウンロードするには、[latest] を選択します。
  6. ACRを任意のフォルダに保存します。
  7. もう一度コマンドパレットを開き、「Vega Device Management: Symbolicate ACR」と入力します。
  8. ACRファイルを選択します。

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

シンボリケーションを開始すると(どちらの方法でも)、Vega Studioからシンボリケーションオプションを選択するように求められます。
  • 自動: Vega Studioにより、必要なすべてのファイルとシンボルが自動的に特定されます。
  • 手動: 開発者がシンボルの位置を手動で指定します。

自動シンボリケーション

Vega Studioによって、必要なすべての構成パラメーターが収集されます。ユーザーによる入力は不要です。終了すると、シンボリケートされたコールスタックがターミナルに表示されます。ネイティブコードの場合、Vega StudioからGNUデバッガー(GDB)セッションが開かれ、対話型デバッグが可能になります。
  1. Vega Studioでパラメーターが収集されるまで待ちます。
  2. 不足しているパラメーターの入力を求められた場合は、次の操作を行います。 a. リクエストを注意深く読みます。 b. リクエストされた情報を入力します。 c. [Continue] を選択します。 たとえば、ネイティブの自動シンボリケーションの実行中、デバイスが接続されていない場合は、デバッグ版rootfsを指定するように求めるプロンプトがVega Studioから表示されます。
  3. 結果を確認します。
    • ターミナルで、シンボリケートされたコールスタックを確認します。
    • ネイティブコードの場合、Vega StudioはGDBデバッグセッションを開きます。
  4. ACRの概要を確認します。 Vega Studioは、次のタイミングでACRの概要を自動的に生成して開きます。
    • ネイティブコードの場合: GDBデバッグセッションを閉じた後
    • JavaScriptコードの場合: シンボリケーションが完了した直後
✓ 成功: ターミナルに、判読可能なファイルパスと行番号を含むシンボリケートされたコールスタックが表示されます。ネイティブのクラッシュの場合は、GDBセッションでクラッシュの状態を調べることができます。

手動シンボリケーション

手動シンボリケーションを開始する前に、package.jsonを調べてビルド構成を確認してください。react-native build-keplerの代わりにカスタムロジックを使用してJavaScript Hermesバイトコードバンドルまたはソースマップを生成する場合は、Metroで生成されるファイルが次の命名規則に従っている必要があります。
  • JavaScriptプレーンテキストバンドル:index.bundle
  • JavaScriptソースマップ:*.bundle.map
手動シンボリケーションでは、Vega StudioによってACRが解析され、コードタイプが検出されて、適切なワークフローが提示されます。 デコードタイプとしてgdbまたはjsを選択する画面のスクリーンショット。 Vega Studioでネイティブコードのみが検出された場合は、以下の操作を求められます。
  1. シンボルソースを選択します。 VS Codeで、シンボルソースとしてデバイス(シミュレーター)またはデバッグ版rootfsを選択する画面のスクリーンショット。 デバイスが接続されている場合:
    • device - 接続されているデバイスからシンボルとライブラリを取得します。
    • debug rootfs - Vega Studioから、デバッグ版rootfsの場所(アプリのトラブルシューティング用にデバッグシンボルを含むバージョンのLinuxファイルシステム)を指定するように求められます。
    デバイスが接続されていない場合: プロンプトが表示されたら、デバッグ版rootfsの場所を指定する必要があります。 シンボリケーションプロセスにデバッグシンボルフォルダを追加する方法を示すスクリーンショット。[Yes] を選択すると追加できます。
  2. デバッグシンボルフォルダを追加します(任意)。 a. [Yes] を選択してフォルダを追加します。 b. フォルダの場所を選択します。 c. 上の操作を繰り返すか、[No] を選択して終了します。
  3. 結果を確認します。 a. ターミナルで、シンボリケートされたコールスタックを確認します。クラッシュが発生したコードの正確な場所が表示されます。 b. GDBデバッグセッションを使用して、次の作業を行います。
    • クラッシュ時点の変数とメモリを検査します。
    • コールスタックをたどります。
    • クラッシュしたときのプログラムの状態を調べます。
  4. ACRの概要を確認します。 GDBデバッグセッションを閉じると、Vega Studioは、処理済みのクラッシュ情報を含むACRの概要を生成して開きます。
✓ 成功: ターミナルに、判読可能な関数名と行番号を含むシンボリケートされたネイティブコードが表示されます。GDBセッションを使用して対話型デバッグを行うことができます。 Vega StudioでJavaScriptコードのみが検出された場合は、ソースマップを提供するように求められます。
  1. プロンプトが表示されたら、[Browse] をクリックします。
  2. プロジェクトフォルダに移動します。
  3. <ハッシュ>.bundle.mapを選択します。
  4. その他のマップを追加します(任意)。 a. プロンプトで [Yes] を選択してマップをさらに追加します。 b. マップファイルの場所を選択します。 c. 上の操作を繰り返すか、[No] を選択して終了します。
  5. ターミナルで、シンボリケートされたコールスタックを確認します。クラッシュが発生したJavaScriptファイルと行番号が正確に表示されます。
  6. ACRの概要を確認します。 Vega Studioは、処理済みのクラッシュ情報を含むACRの概要を自動的に生成して開きます。これは根本原因を特定するために役立ちます。
✓ 成功: ターミナルに、メモリアドレスの代わりに判読可能なファイルパス(MyComponent.tsx:87など)を含むJavaScriptスタックトレースが表示されます。 Vega StudioでネイティブコードとJavaScriptコードの両方が検出された場合は、シンボリケートするコードタイプを選択するように求められます。選択したコードタイプに応じて、ネイティブまたはJavaScriptの手順に従います。 ✓ 成功: ターミナルに、選択したコードタイプのシンボリケートされたスタックトレースが表示されます。

次の手順

ACRのシンボリケート後:
  1. アプリがクラッシュする原因を検出する方法を参照して、クラッシュがアプリのコードとAmazonのコードのどちらで発生したかを特定し、対処を行います。
  2. 特定されたファイルと行番号のコードに移動して、修正を実装します。
  3. クラッシュが発生した状況と同じデバイスタイプでアプリを実行して、修正を確認します。
  4. デプロイ後にデバイスログを調べて、クラッシュが再発しないことを確認します。

トラブルシューティング

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

関連トピック


最終更新日 2026年10月26日