脱力駆動開発記

ゲームアプリを作るエンジニアの技術メモ

MENU

【fastlane】CrashlyticsへのdSYMのアップロードを自動化する

f:id:cocokyoro:20200419183933p:plain

Crashlyticsでクラッシュ情報の詳細を見るためにdSYMファイルをアップロードする必要がある。
手動でやるのがめんどくさいので自動化したい。

Xcode関連の自動化はfastlaneがいいぞと聞いたので、使ってみる。

The easiest way to automate building and releasing your iOS and Android apps github.com

初期設定

qiita.com ↑を参考にAppfileを埋める

app_identifier("*****************") # The bundle identifier of your app
apple_id("*****************") # Your Apple email address

dSYMのアップロード

Fastlane

before_all do
    #プラグインのアップデート
    update_fastlane
    sh("fastlane update_plugins")
    sh("curl -sL firebase.tools | upgrade=true bash")
end

lane :refresh_dsyms do |options|
    # バージョンの指定がなければ、最新バージョンのdSYMファイルをダウンロードする
    version = options[:version] || 'latest'
    download_dsyms(
      version: version
    )
    # dSYMファイルをcrashlyticsにアップロードする
    upload_symbols_to_crashlytics(gsp_path: "./GoogleService-Info.plist",binary_path: "/Applications/Fabric/upload-symbols")
    # ローカルのdSYMファイルを削除する
    clean_build_artifacts
end

こちら参考に tech.unifa-e.com

途中で出たエラー

[!] Failed to find Fabric's upload_symbols binary at /Applications/Fabric.app/**/upload-symbols or ./Pods/**/upload-symbols.
 Please specify the location of the binary explicitly by using the binary_path option

upload-symbolsの実行ファイルが無いとのことだったので、 ビルドしたxcodeプロジェクトのディレクトリ内に/Pods/Fabricが生成されてるので、 Applications以下にコピー(/Application/Fabric/upload-symbols)

[!] Either Firebase Crashlytics App ID, path to GoogleService-Info.plist or legacy Fabric API key must be given.
  • CrashlyticsのAppID
  • GoogleService-Info.plist のパス
  • Fabric API key

のどれかが必要だよ。的な

Firebase側の設定画面からGoogleService-Info.plistをダウンロード。
プロジェクト内に配置。

実行

これだけで無事にfirebaseにdSYMがアップロードできた。 便利や〜
f:id:cocokyoro:20200419182610p:plain