LoginSignup
8
6

More than 3 years have passed since last update.

Fastlane から Firebase App Distribution(Beta版) でテストアプリを配信する

Posted at

背景

Fabric Beta によるテストアプリの配信という記事を書きましたが、

以上より、自分の勉強がてらに、記事を更新しておこうと思いました。

前提条件

ローカルで配信する

※ git commitしてない変更が消えるのでご注意。。。

1. Firebase CLIにログインする

$ firebase login

2. fastlane のプラグインを追加しておく

$fastlane add_plugin firebase_app_distribution

参考
- https://firebase.google.com/docs/app-distribution/ios/distribute-fastlane
- https://github.com/fastlane-community/fastlane-plugin-firebase_app_distribution

3. ローカルで実行する場合、fastlane/Fastfileに以下を追加しておく(Androidアプリを gradleビルドして、firebseで配信する)
※ この例は、stagingDebugビルド

  desc "Submit Firebase App Distribution"
  lane :distribute do
    gradle(task: "clean")
    # Compile
    gradle(
      task: "assemble",
      flavor: "staging",
      build_type: "debug",
      flags: "--stacktrace"
    )

    # https://github.com/fastlane/fastlane/issues/6325
    sh("touch changelog.txt")
    File.write("changelog.txt", changelog)

    # Firebase App Distribution
    firebase_app_distribution(
      app: "<Firebaseプロジェクトの app Id>",
      release_notes_file: "fastlane/changelog.txt",
      groups: "<配信グループ名>"
    )
  end

4. fastlaneで配信する

$ bundle exec fastlane distribute

5. fastlaneをログアウト

$ firebase logout

CIで実行する場合

1. FIREBASE_TOKENを取得する

$ firebase login:ci

2. .circleci/config.yml に追加

references:
  commands:
    fastlane_install_firebase_cli: &fastlane_install_firebase_cli
      name: Install Firebase CLI
      command: |
        npm install --save-dev firebase-tools
    fastlane_distribute: &fastlane_distribute
      name: Run fastlane distribute
      command: |
        bundle exec fastlane distribute

必要なところで実行する
- run: *fastlane_install_firebase_cli
- run: *fastlane_distribute

3. fastlane/Fastfileに以下を追加しておく(Androidアプリを gradleビルドして、firebseで配信する)
※ この例は、stagingDebugビルド


  desc "Submit Firebase App Distribution"
  lane :distribute do
    gradle(task: "clean")
    # Compile
    gradle(
      task: "assemble",
      flavor: "staging",
      build_type: "debug",
      flags: "--stacktrace"
    )

    # https://github.com/fastlane/fastlane/issues/6325
    sh("touch changelog.txt")
    File.write("changelog.txt", changelog)

    # Firebase App Distribution
    firebase_app_distribution(
      app: ENV["FIREBASE_APP_ID"],
      release_notes_file: "fastlane/changelog.txt",
      groups: ENV["FIREBASE_APP_DISTRIBUTION_GROUP"],
      firebase_cli_path: ENV["FIREBASE_CLI_PATH"]
    )
  end

4. 各環境変数をCIで登録しておく

変数名 概要 補足
ENV["FIREBASE_TOKEN"] トークン CircleCIで実施する場合 必須
ENV["FIREBASE_APP_ID"] Firebaseプロジェクトのアプリ
ENV["FIREBASE_APP_DISTRIBUTION_GROUP"] 配信グループ名
ENV["FIREBASE_CLI_PATH"] Firebase CLIのPath CircleCIで設定する場合: ./node_modules/.bin/firebase

所感

同僚がいろいろ調べてくれたので、そこまで難しくなくできましたが、雑すぎるので、時間があれば書き直す・・・

8
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
6