アプリの dSYM ファイルは、Xcode の dSYM アーカイブ パス フォルダーに保存されます。これは、iOS エージェントがクラッシュ レポートを象徴するために使用される dSYM ファイルを取得するフォルダーです。New Relic は、 iOS エージェントのインストール プロセスの一部として、ビルド後のスクリプトを提供します。このスクリプトは、dSYM を New Relic マップ ファイル形式に自動的に変換し、クラッシュ シンボリケーションに必要なファイルを New Relic にアップロードします。
自動スクリプト
Swift スクリプトは、Xcode のターゲットのビルド フェーズでビルド スクリプトから実行することを目的とした iOS エージェントに含まれています。このスクリプトは、dSYM ファイルをバックグラウンドで自動的にアップロードし (または dSYM を New Relic マップ ファイル形式に変換し)、クラッシュのシンボリケーションに必要なファイルを New Relic にバックグラウンドでアップロードします。
Xcode 14 では、Apple は新しく作成されたプロジェクトのデフォルト設定を変更してビットコードを無効にしました。App Store は、ビットコードがオフになっているアプリの提出のみを受け入れるようになりました。Xcode 14 のリリース ノートを参照してください。プロジェクトでビットコードが有効になっている場合は、無効にする必要があります。自動スクリプトでは、ビットコードを無効にする必要があります。
Apple は、ビットコード対応アプリ用に dSYM ファイルを生成します。ビットコード対応アプリの dSYM ファイルを Apple からダウンロードし、モバイル監視 UIを介して New Relic にアップロードする必要があります。
[ クラッシュ]ページに読み取り不可能なマシンコードが表示されている場合は、dSYMファイルが正しくアップロードされていない可能性があります。場合によっては、 dSYMファイルを手動でアップロードする必要があります。
New Relic iOS エージェント バージョン 7.4.0Swift を使用する新しいシンボル アップロード スクリプトを導入しました。シンボル アップロード スクリプトの Python バージョンは引き続き使用できますが、将来のリリースでは削除される予定です。New Relic iOS エージェント バージョン 7.3.8 では、Python バージョンの自動スクリプト はPython 3 を使用します。 ただし、macOS 12.2 以前で python 自動スクリプトを使用する場合は、手動で Python 3をインストールする必要がある場合があります。
欠落しているdSYMを特定する
Bitcode対応アプリをAppStoreのレビューまたはアドホック配布のためにAppleにアップロードする場合、モバイルクラッシュレポートを適切にシンボル化できるように、dSYMをAppleから手動でダウンロードしてNewRelicにアップロードする必要があります。これらのdSYMは、アプリをアップロードしてから数分以内にXcodeのアーカイブオーガナイザーからダウンロードできます。この状況では、手順に従ってアーカイブを検索し、dSYMをダウンロードします。
アプリにdSYMファイルがない場合は、モバイルモニタリングUIに次の3つのインジケーターが表示されます。
- バナー通知: クラッシュレポートページにバナー警告が表示されます。警告は次のとおりです。
We were unable to locate your dsym.
- アップロードプロンプト:クラッシュタイプの概要ページから、dSYMファイルが見つからない場合は、アップロードするように自動的に求められます。
- マシンコード:クラッシュレポートページのクラッシュスタックトレースには、人間が読める形式のエラーメッセージではなく、マシンコードが表示されます。
モバイルモニタリングUIを介してdSYMファイルをアップロードする
NewRelicUIから直接dSYMファイルを簡単にアップロードできます。最大ファイルサイズは600MBです。 dSYMファイルをアップロードするには:
- one.newrelic.com > モバイルに移動します。次に、リストからアプリを選択します。
- クラッシュ分析を表示します。
- クラッシュタイプリストから特定のクラッシュを選択します。
- [ dSYM をアップロード] をクリックします。dSYM を直接ドラッグ アンド ドロップするか、コンピューターからファイルを選択することができます。
dSYMファイルを手動でアップロードする
状況によっては、New Relic の dSYM ファイルの自動アップロードが失敗することがあります。dSYM のアップロードが失敗すると、 upload_dsym_results
ファイルが作成されます。たとえば、ネットワーク障害が発生し、dSYM アップロードが完了していない場合、 upload_dsym_results
には問題のログが含まれます。New Relic が dSYM アップロードを処理する方法の詳細については、New Relic のオンライン テクニカル コミュニティを参照してください。
自動アップロードが失敗した場合は、dSYM ファイルを手動でアップロードできます。複数の dSYM ファイルがある場合は、最大ファイル サイズが 600 MB の単一の zip 内に含めることができます。以下のコマンドの YOUR_NEW_RELIC_APPLICATION_TOKEN 値は、 +[NewRelic startWithApplicationToken:]
(Objective-C の場合) またはNewRelic.start(withApplicationToken:)
(Swift の場合) に使用されるキーと同じです。
dSYMファイルを手動でアップロードするには:
トラブルシューティング
自動スクリプトは、プロジェクトのルート ディレクトリにupload_dsym_results.log
ファイルを作成します。このファイルには、シンボルのアップロード中に発生したエラーに関する情報が含まれています。
欠落しているdSYM
dSYMファイルが見つからない場合は、Xcodeビルド設定をチェックして、ファイルが生成されていることを確認する必要があります。ローカルでビルドされるフレームワークには個別のビルド設定があり、同様に更新する必要がある場合があります。
ビルド設定:
Debug Information Format : Dwarf with dSYM FileDeployment Postprocessing: YesStrip Linked Product: YesStrip Debug Symbols During Copy : Yes