「dSYM の欠損」に対応する | iOS | Flutter 3.29.0 | Crashlytics | Firebase

セルフプレジャー(自慰行為)を記録&管理するアプリ『アイナーノ』の Ver.7.0.0 で「Firebase Crashlytics」に対応したのですが、リリース直後に「dSYM の欠損」というメールが Google (Firebase) から届きました。

内容は以下の通りで「不足している dSYM」「バージョン 7.0.0 (42) で不足している dSYM が Crashlytics で検出されました」と記載されています。

そして、メール内の「dSYM をアップロード」ボタンをクリックして表示された画面には、以下が掲載されています。

リリースしたアプリに問題が?

実は「Firebase Crashlytics」に対応した際、その全容を理解していませんでした。

結論…「dSYM の欠損」は、リリースしたアプリには影響がなく、何らかの不具合が発生している、という警告ではありません。アプリを利用するユーザには関係がありません。

これは、アプリ内で何らかのエラーが発生して、それが Crashlytics に登録された際に、その詳細を解析できない・把握できない、という警告です。

アプリを運営していく上でエラー解析は必須なので、無視できません。要対応です。 

「dSYM」とは?

dSYM は「Debug Symbol File」の略です。

このファイルは、iOS アプリのデバッグやクラッシュ レポートの解析に使用されます。アプリをビルドする際に生成されるもので、シンボル情報(関数名、行番号、変数名など)を保持しています。

これを処理して、難読なクラッシュログを人間が理解できる形式に変換します。

「dSYM」はどこ?

ビルド時に生成された dSYM が何処に格納されているのか分からないので「dSYM ファイルが見つからない場合 方法」を参照します。以下のページが表示されます。

Crashlytics ダッシュボードで読み取り可能なクラッシュ レポートを取得する
https://firebase.google.com/docs/crashlytics/get-deobfuscated-reports?hl=ja&platform=ios

まず、冒頭で気になった記載があります。

通常、この動作はアプリの Crashlytics の初期設定時に構成します。具体的には、アプリのビルドフェーズで dSYM ファイルを自動的にアップロードする実行スクリプトを追加して構成します。

つまり、初期 Crashlytics 導入時に、dSYM 自動アップロードのスクリプトを Xcode に組み込む必要があったのです。

はい…そうしていないのは仕方がないので、今は既に生成された dSYM を探します。

ローカルマシン上で dSYM を見つける
https://firebase.google.com/docs/crashlytics/get-deobfuscated-reports?hl=ja&platform=ios#locate

上記参照では、コマンドを実行して dSYM を検索する方法が紹介されていますが、後述されている Xcode 上からダウンロードする方法が直感的で分かりやすく簡単です。

ただ、迷った操作があるので、以下に少し補足します。

  1. Xcode で [Organizer] ウィンドウを開いて、リストからアプリを選択します。Xcode に、プロジェクトのアーカイブのリストが表示されます。
    (補足)Xcode の [Window] に [Organizer] があります。
  2. Ctrl キーを押しながらアーカイブをクリックして、Finder に表示します。もう一度 Ctrl キーを押しながらクリックし、[Show Package Contents] をクリックします。
    (補足)Runner ~ .xcarchive ファイルに対して [パッケージの内容を表示] を選択します。
  3. .xcarchive 内にある dSYMs ディレクトリには、Xcode のアーカイブ プロセスの一環として生成された dSYM が格納されています。
    (補足)dSYMs という名前のディレクトリを丸ごと ZIP 圧縮します。

こうして得た dSYM .zip ファイルを、Firebase 画面でアップロードします。

これで完了です。

以下のように「アップロード済み」になって、クラッシュ レポートが読めるようになりました。

所感

ChatGPTDeepSeek に本件を尋ねてみると、概ね正しい対処方法を教えてくれたので、Firebase の公式ドキュメントと併せて確認すると理解が早いと思います。

コメント

このブログの人気の投稿

Breaking Taboos and Reaching 100K Downloads: The Journey and Future of the Masturbation Tracker App "Ei Nano"