デフォルトでは、Firebase Crashlytics はデバッグ シンボル (dSYM) ファイルを自動的に処理して、難読化を解除した人が読めるクラッシュ レポートを提供します。この動作は、Crashlytics を初期化する実行スクリプトをアプリのビルド フェーズに追加すると設定されます。
残念ながら、アプリ内のビットコードやその他の独自のプロジェクト構成など、dSYM のアップロードが失敗する原因となるケースがいくつかあります。このガイドでは、Crashlytics がアプリの dSYM を見つけられない場合のトラブルシューティング方法をいくつか紹介します。
Xcode が dSYM を生成しているかどうかを確認する
多くの場合、dSYM ファイルが見つからないのは、Xcode がそれらを生成していないためです。アップロードが失敗すると、Crashlytics は Firebase コンソールに「Missing dSYM」アラートを表示します。このアラートが表示された場合は、まず Xcode がすべてのビルドに対して正しい dSYM を生成していることを確認してください。
Xcode でプロジェクトを開き、Xcode Navigator でプロジェクト ファイルを選択します。
メインのビルド ターゲットを選択します。
ターゲットのBuild Settingsタブを開き、 Allをクリックします。
「デバッグ情報形式」で検索してください。
すべてのビルド タイプのdSYM ファイルを使用して、デバッグ情報の形式を DWARF に設定します。
アプリを再構築します。
クラッシュ レポートが Firebase コンソールに表示されるはずです。問題が解決しない場合、または他のエラーが発生した場合は、dSYM を見つけて手動で Crashlytics にアップロードしてみてください。
dSYM を見つける
ビットコード構成またはコンソールの接続が原因で、Crashlytics がアプリの dSYM を見つけられない場合があります。これが発生した場合、トラブルシューティングできる追加の方法が 2 つあります。
dSYM をアップロードする
dSYM を手動でアップロードするには、コンソール ベースの「ドラッグ アンド ドロップ」オプションを使用して、dSYM ファイルを含む zip アーカイブをアップロードします ([Firebase コンソール] > [ Crashlytics ] > [ dSYMs ] タブに移動します)。
または、バックアップとして、Crashlytics にはupload-symbols
スクリプトが含まれており、ビルド プロセスのどこからでも呼び出すことができ、dSYM ファイルを手動でアップロードできます。このスクリプトは、アップロード プロセスに関する詳細情報と、より包括的なエラー メッセージを提供します (使用上の注意と追加の手順については、パラメーターを指定せずにupload-symbols
を実行してください)。
ビットコード dSYM をアップロードするときは、次のコマンドを実行して、zip アーカイブ内のアイコン ファイルを削除すると役立つ場合があります。
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
デフォルトでは、Firebase Crashlytics はデバッグ シンボル (dSYM) ファイルを自動的に処理して、難読化を解除した人が読めるクラッシュ レポートを提供します。この動作は、Crashlytics を初期化する実行スクリプトをアプリのビルド フェーズに追加すると設定されます。
残念ながら、アプリ内のビットコードやその他の独自のプロジェクト構成など、dSYM のアップロードが失敗する原因となるケースがいくつかあります。このガイドでは、Crashlytics がアプリの dSYM を見つけられない場合のトラブルシューティング方法をいくつか紹介します。
Xcode が dSYM を生成しているかどうかを確認する
多くの場合、dSYM ファイルが見つからないのは、Xcode がそれらを生成していないためです。アップロードが失敗すると、Crashlytics は Firebase コンソールに「Missing dSYM」アラートを表示します。このアラートが表示された場合は、まず Xcode がすべてのビルドに対して正しい dSYM を生成していることを確認してください。
Xcode でプロジェクトを開き、Xcode Navigator でプロジェクト ファイルを選択します。
メインのビルド ターゲットを選択します。
ターゲットのBuild Settingsタブを開き、 Allをクリックします。
「デバッグ情報形式」で検索してください。
すべてのビルド タイプのdSYM ファイルを使用して、デバッグ情報の形式を DWARF に設定します。
アプリを再構築します。
クラッシュ レポートが Firebase コンソールに表示されるはずです。問題が解決しない場合、または他のエラーが発生した場合は、dSYM を見つけて手動で Crashlytics にアップロードしてみてください。
dSYM を見つける
ビットコード構成またはコンソールの接続が原因で、Crashlytics がアプリの dSYM を見つけられない場合があります。これが発生した場合、トラブルシューティングできる追加の方法が 2 つあります。
dSYM をアップロードする
dSYM を手動でアップロードするには、コンソール ベースの「ドラッグ アンド ドロップ」オプションを使用して、dSYM ファイルを含む zip アーカイブをアップロードします ([Firebase コンソール] > [ Crashlytics ] > [ dSYMs ] タブに移動します)。
または、バックアップとして、Crashlytics にはupload-symbols
スクリプトが含まれており、ビルド プロセスのどこからでも呼び出すことができ、dSYM ファイルを手動でアップロードできます。このスクリプトは、アップロード プロセスに関する詳細情報と、より包括的なエラー メッセージを提供します (使用上の注意と追加の手順については、パラメーターを指定せずにupload-symbols
を実行してください)。
ビットコード dSYM をアップロードするときは、次のコマンドを実行して、zip アーカイブ内のアイコン ファイルを削除すると役立つ場合があります。
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