fastlaneでCrashlytics Betaアップロードを自動化する方法

iOSアプリにfastlaneを導入し、Crashlytics Betaにアップロードする方法をまとめておきます。

fastlaneに関してとインストール方法はこちらの記事で紹介しました。 まだ読んでいない方は、是非読んでみてください!

fastlane/Fastfile

Fastfileでは、fastlaneで行いたい作業を記述します。 本記事では、Crashlytics Betaにバイナリをアップロードしてみます。 まずFabricの設定からAPI KeyとBuild Secretを取得しておきましょう。

before_allで環境変数に設定します。

  before_all do
    # Crashlyticsの設定
    ENV['CRASHLYTICS_API_TOKEN'] = "XXXXXXXXXX" # Fabricで取得したAPI Keyに入れ替えてください
    ENV['CRASHLYTICS_BUILD_SECRET'] = "XXXXXXXXXXXXXXXXXXXX" # Fabricで取得したBuild Secretに入れ替えてください

    # ENV["SLACK_URL"] = "https://hooks.slack.com/services/..."
    cocoapods

  end

fastlane/Fastfileに以下のコードを追加します。

  desc "Build and submit ExampleApp app on Crashlytics Beta"
  lane :crashlytics do
    cert
    sigh
    gym(
      scheme: "ExampleApp",
      configuration: "Release",
      clean: true
    )
    crashlytics(
      api_token: ENV["CRASHLYTICS_API_TOKEN"],
      build_secret: ENV["CRASHLYTICS_BUILD_SECRET"],
      notes: "",
      notifications: true
    )
  end

上記のコードを追加することで、fastlaneでcrashlyticsコマンドを実行できるようになります。

$ fastlane crashlytics

これでバイナリをCrashlytics Betaにアップロードすることができます。

Release Notesにコミットメッセージを追加

せっかくなので、Betaにアップロードする際にコミットメッセージをRelease Notesに追加したいと思います。

  
  def change_log_since_last_tag
    # http://git-scm.com/docs/pretty-formats
    #  
    return changelog_from_git_commits(pretty: '%h %s')
  end

  desc "Build and submit ExampleApp app on Crashlytics Beta"
  lane :crashlytics do
    cert
    sigh
    gym(
      scheme: "ExampleApp",
      configuration: "Release",
      clean: true
    )
    crashlytics(
      api_token: ENV["CRASHLYTICS_API_TOKEN"],
      build_secret: ENV["CRASHLYTICS_BUILD_SECRET"],
      notes: change_log_since_last_tag,
      notifications: true
    )
  end

「開発して、Crashlytics Betaにアップロードして、テスターに配布する」が自動化できました! これでデバッグ作業やテスターへの配布作業が格段に楽になりました。

こちらにfastlaneのサンプルがたくさんあるので参考にしてみてください! fastlaneを使って、iTunes Connectへバイナリをアップロードする方法はこちらの記事でを紹介しています。 fastlaneで快適開発ライフを送りましょう!