デフォルトでは、Firebase Crashlytics はデバッグ シンボル(dSYM)ファイルを自動的に処理して、難読化解除された(人が読める形式の)クラッシュ レポートを生成します。この動作は、Crashlytics を初期化する実行スクリプトをアプリのビルドフェーズに追加するときに設定されます。
わずかながらも、dSYM のアップロードが失敗する状況がいくつかあります。通常、その原因はアプリ内のビットコードや固有のプロジェクト構成です。このガイドでは、Crashlytics がアプリの dSYM を見つけられない場合のトラブルシューティング方法をいくつか説明します。
Xcode が dSYM を生成しているかどうかを確認する
多くの場合、dSYM ファイルが欠落する理由は Xcode がファイルを生成していないことにあります。アップロードが失敗すると、Crashlytics は Firebase コンソールに「不足している dSYM」というアラートを表示します。このアラートが表示された場合は、まず、Xcode がすべてのビルドに対して正しい dSYM を生成していることを確認します。
Xcode でプロジェクトを開き、ナビゲータでプロジェクト ファイルを選択します。
メインのビルド ターゲットを選択します。
ターゲットの [Build Settings] タブを開き、[All] をクリックします。
「debug information format」を検索します。
すべてのビルドタイプについて、[Debug Information Format] を [DWARF with dSYM File] に設定します。
アプリを再ビルドします。
これで、Firebase コンソールにクラッシュ レポートが表示されます。問題が解決しない場合や他のエラーが発生した場合は、dSYM を見つけて手動で Crashlytics にアップロードしてください。
dSYM を見つける
ビットコードの構成やコンソールの接続が原因で、Crashlytics がアプリの dSYM を見つけられない場合があります。この場合のトラブルシューティングには、次の 2 つの方法があります。
dSYM をアップロードする
dSYM を手動でアップロードするには、コンソールベースの「ドラッグ&ドロップ」オプションを使用して、dSYM ファイルが含まれている zip アーカイブをアップロードします(Firebase コンソール > [Crashlytics] > [dSYM] タブの順に選択して移動します)。
Crashlytics には、バックアップとして upload-symbols
スクリプトも組み込まれています。このスクリプトをビルドプロセスの任意の時点で呼び出すことで、dSYM ファイルを手動でアップロードできます。このスクリプトはアップロード プロセスに関するより詳細な情報と、より包括的なエラー メッセージを表示します(使用方法に関する注意事項と詳細な説明を確認するには、パラメータを指定せずに upload-symbols
を実行します)。
ビットコードの dSYM をアップロードするときに、次のコマンドを実行して zip アーカイブ内の Icon ファイルをすべて削除したほうがいい場合があります。
unzip appDsyms.zip
cd appDsyms rm -rf $(find . | grep Icon)
# Enumerate all the dSYMs
upload-symbols ... $(ls)
upload-symbols
スクリプトを実行するには、次のいずれかのオプションを使用します。
ビルドプロセスに次の行を含めます。
find dSYM_DIRECTORY -name "*.dSYM" | xargs -I \{\} $PODS_ROOT/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p PLATFORM \{\}
ターミナルからスクリプトを直接実行します。
/PATH/TO/PODS/DIRECTORY/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p ios /PATH/TO/dSYMs