Tomo.Log()


FirebaseでdSYMをアップロードする方法が変わってた

[03/07, 2020]

最近毎日筋肉痛です。こんにちは、トモです。

FirebaseでdSYMをアップロードする方法が、upload-symbolsのコマンドを使う方法に変わっていたのでやり方を残しておきます。

dSYMの場所

Xcodeの設定

iOSのプロジェクトの設定でdSYMを作るように設定してある必要があります。

設定は、debug information formatの値がDWARF with dSYM FileになっていればOKです。

Xcode > Targets > Build Settings > debug information format > 値を「DWARF with dSYM File」にする

AppStoreConnectからダウンロードできる

自分は普段AppStoreConnectからダウンロードしています。

AppStoreConnect > App > Activity > ダウンロードしたいバージョン > download dSYM

上記の場所からダウンロードできます。

もしかしたら、Xcodeでプロジェクトの設定で、bitcodeの設定をYESにしていないとダウンロードで着ないかもしれません🤔

コマンドラインで直接たたく

自分はCocoapodsを使っているます。
アップロード用のコマンドはPodsフォルダの中に入っています。

Appのディレクトリ/Pods/Fabric/upload-symbols

以下コマンドを適宜自分の環境に当てはめて変更してください。

<1:Appのディレクトリ>/Pods/Fabric/upload-symbols -gsp ../<2:アプリ名>/GoogleService-Info.plist -p ios <3:ダウンロードしてきたdYSMの場所>/<4:dSYMのファイル名> 
  1. Appのディレクトリ : アプリのディレクトリの中に入って作業する場合は Pods/Fabraci〜で大丈夫です。
  2. アプリ名 : GoogleService-Info.plistのある場所を指定する必要があります。デフォルトの場合はアプリのディレクトリの中にアプリ名のフォルダがあってその中にあると思います。
  3. ダウンロードしてきたdYSMの場所 :
  4. dSYMのファイル名 : AppstoreConnectからDLしている場合はzip形式にってると思います。

うまくいくと、実行後に「Successfully uploaded Crashlytics symbols」と表示されます。

追記(2020/03/18):Fabric(Crashlytics)時代のアプリの場合はコマンドが少し違う

何回やってもうまくいかないアプがあり、「あれー?」と思っていたら、Fabric時代のアプリの場合コマンドが少し違うみたいです。

<1:Appのディレクトリ>/Pods/Fabric/upload-symbols -a <2:APIキー> -p ios <3:ダウンロードしてきたdYSMの場所>/<4:dSYMのファイル名>

違うのは、upload-symbolsの後のオプションが「-a」になっていて、GoogleService-Info.plistが「APIキー」になっているところですね。
APIキーはFabric時代に手に入れているもので、現在どこでみれるかはわかりませんw自分はたまたま、手元にメモが残っていました。

ちなみに、Fabric時代のアプリも通常のコマンドでアップロードして「Successfully uploaded Crashlytics symbols」と表示されるのですが、Firebase上では追記したコマンドでやらないといつまでたっても認識されていないようでした。

追記 2020.11.1 SDKが新しくなったので修正しました : Fabric > FirebaseCrashlytics

CrashlyticsのSDKが新しくなったのでコマンドラインでアップロードする方法を追記しておきます。

Appのディレクトリ/Pods/FirebaseCrashlytics/upload-symbols
<1:Appのディレクトリ>/Pods/FirebaseCrashlytics/upload-symbols -gsp ../<2:アプリ名>/GoogleService-Info.plist -p ios <3:ダウンロードしてきたdYSMの場所>/<4:dSYMのファイル名> 

Podも新しくなっていましたね。

新しいPod

 pod 'Firebase/Crashlytics'
 pod 'Firebase/Core'

古いPod

  pod 'Fabric'
  pod 'Crashlytics'

RunScriuptに追加する方が楽かもしれない

公式ページには、Xcodeのrun scriptに追加して使う方法も書いてあるので、そっちの方が一度設定したら勝手にアップロードしてくれるはずなので、楽かもしません。

成功すると、普通にビルドが通るだけなので、うまくいってるか,よくわからないですね😂

追記したFabric時代のアプリはコマンドを変更する必要がありそうですね。