「バージョン###で不足しているdSYMがCrashlyticsで検出されました」の通知

※当サイトは、アフィリエイト広告を利用しています

結論:XcodeのArchivesからdSYMsを見つけ、zipにして管理画面からアップロードする

2023/4/23 Flutter エラー・バグ日記

 

ネットに多くの情報があったので楽勝かと思いきや、うまく行かず、、解決にかなり苦労した。。

 

エラーログ把握のため、Firebase Crashlyticsを導入しているアプリ(Flutterで開発)について、Firebaseから下図のようなメールが届いた。

 

 

Firebase Crashlyticsの管理画面を見ると、確かに警告状態になっていた。

 

 

本記事はライトな日記思考で書いているので、詳細説明はしておらず、基本、テキストのみで画像とかはあまり載せておりません。。m(_ _)m

解説記事ではないため、解決していない内容や、その時々の間違った解釈を述べてしまっている可能性が大いにありますので、何卒、ご了承ください。

 

恥ずかしながら「dSYM」が何なのか全く知らなかったが、ざっくり言うとデバッグ情報が含まれたファイルらしい。

 

 

以下にFirebase公式の説明があるが、今ひとつ理解が進まず、、、ネット上の記事を探すことにする。

 

 

AppStoreからダウンロードを試みるも、見つからない。。

多くの情報が見つかるが、まずは手軽そうに思われた下記記事を参考にさせていただく。

 

 

こちらの情報によると、「Test Flight」タブ→「ビルドのメタデータ」→「シンボルを含む」のところに、「dSYMをダウンロード」があるはずなのだが、なぜか自分の画面にはない。。

 

 

理由を調べると、こちらのFirebase公式

  

 

にあるとおり、

 

Xcodeの「Runner」→「Target」→「Build Settings」→「All」選択→「debug information format」で検索→「Debug Information Format」を「DWARF with dSYM File」に設定(「Release」と「Debug」のいずれでも)

 

がされていないと、dSYMが生成されないとのこと。

 

しかし、自分の場合は既に設定済だった。。

 

 

そのため、dSYMを入手する別の方法を探すことにした。

 

この時点では気づけなかったが、その後、下記記事に原因を教えていただいたm(_ _)m。

 

 

大まかに言うと、Xcode 14ではBitcodeオプションが非推奨になったため、dSYMファイルが生成されず、その結果、AppStore Connectからもダウンロードできなくなった模様。

 

Finder上でファイルを確認し、コマンドで送信するも、反映されない。。

次に分かりやすそうだった下記記事を参考にさせていただく。

 

 

この方法に沿って、まずは、XcodeでProduct Archiveした後の

 

/Users/####/####/####/build/ios/Release-iphoneos
※「/Users/####/####/####」の部分はFlutterのプロジェクトフォルダのパスを仮表記したもの

 

のフォルダに「Runner.app.dSYM」があることを確認(今回の警告対象となっているバージョンを作成した際のアーカイブがそのまま残っていた)。

 

そのため、「Runner.app.dSYM」を下記コマンドでアップロードした。

 

/Users/####/####/####/ios/Pods/FirebaseCrashlytics/upload-symbols -gsp /Users/####/####/####/ios/Runner/GoogleService-Info.plist -p ios /Users/####/####/####/build/ios/Release-iphoneos/Runner.app.dSYM

※「/Users/####/####/####」の部分はFlutterのプロジェクトフォルダのパスを仮表記したもの 

 

仕組みとしては、Firebase Crashlyticsに内包されている「upload-symbols」というスクリプトを使ってアップロードする、ということらしい。

 

こちらの情報が非常に参考になったm(_ _)m。

 

 

当初、このアップロードのコマンドがなかなか通らず苦労した。。

 

主に発生したエラーは以下。

 

  • zsh: no such file or directory: ../Pods/FirebaseCrashlytics/upload-symbols
  • error: Unable to read Google Service plist at path GoogleService-info.plist

 

自分の理解が乏しいためだが、、コマンド内のパス部分の書き方が、ネットの情報では諸説ある印象だった。

 

試行錯誤の結果、最終的に、

 

  • upload-symbols
  • GoogleService-Info.plist
  • Runner.app.dSYM

 

いずれも絶対パスで記載する形にしたら、

 

Successfully uploaded Crashlytics symbols

 

と表示されて、アップロードが成功した。

 

しかし、、Firebase Crashlyticsの管理画面の警告が消えない

 

反映されるまで時間がかかる、との情報もあったので、丸1日待ってみたが、結局、解消しなかった。。

 

zipファイルにしてアップロードするも、解消しない。。

最初に参考にした記事では、zipファイルをFirebase Crashlyticsの管理画面からアップロードする方式が紹介されていた。

 

そこで、「Runner.app.dSYM」をzipにしてアップロードしたところ、アップロード自体は問題なくできた。

 

しかし、、やはり丸1日経っても警告は消えなかった。

 

Xcode上から開くと解消できた!【解決】

放置するしかないか、、と諦めかけたところで、

 

 

の記事から参照されている

 

 

のQ&A記事を見つける。

 

こちらに、とても丁寧なアニメーションGIFを用いた回答がなされていた。

 

大まかには、

 

  1. Xcodeの「Window」「Organizer」で、Product Archiveの履歴画面を出し、
  2. 該当するバージョンのArchiveをFinderで開き
  3. 「Runner・・・.xcarchive」を「パッケージの内容を表示」で開き、
  4. 「dSYMs」というフォルダをzipにし、
  5. Firebase Crashlyticsの管理画面からアップロードする

 

というもの。

 

 

確かにこの方法を実行したら、一発で警告が消えた!

 

アップロードした「dSYMs」は、Flutterプロジェクトのフォルダ内ではなく、Xcodeのフォルダ内にあったので、どうやらアップロードすべきものが違っていた模様。。

 

\一般的なエラー対処法をまとめた記事はこちら/

 

リリースしたアプリ(全てFlutterで開発)

 

個人アプリ開発で役立ったもの

おすすめの学習教材

超初心者向けでオススメな元Udemyの講座/

 

 \キャンペーン時を狙えば安価で網羅的な内容が学べる(日本語訳あり)/

 

\Gitの基礎について無料で学べる/

 

おすすめの学習書籍

実用的image_pickerに関してかなり助けられた/

 

Dartの基礎文法を素早くインプットできる/


Dart入門 - Dartの要点をつかむためのクイックツアー

タイトルとURLをコピーしました