9
6

More than 3 years have passed since last update.

Flutterで作ったアプリをfastlane+App Distributionで配信する(Android編)

Posted at

iOS編の続き。AndroidもローカルからApp Distributionに配信できるようにする。

1.環境を分けてビルド

Androidの方はめちゃくちゃ簡単で、この記事を参考にgradleで設定すれば問題なくできる。flavorはiOSの側と合わせておく。
https://medium.com/flutter-community/flutter-ready-to-go-e59873f9d7de

2.fastlaneのインストール

iOS編でインストールしているのでスキップ。

3.Fastfileを作る

flavorを分けたら、それに合わせてFlutterでビルドする。App DistributionではAppBundleに対応していないので、apkで出力する。
テストする端末に合わせて32bit版と64bit版両方欲しかったので、オプションに--split-per-abiも追加する。

$ flutter build apk --split-per-abi --release --flavor staging --target lib/main_staging.dart
$ cd android
$ fastlane init

fastlane/Fastfilefastlane/Appfileができるので、Appfilepackage_nameを確認しておく。今回はスキップしたけど、GooglePlayStoreにアップしたい場合は、GooglePlayConsoleからjson_key_fileを用意する。
https://docs.fastlane.tools/getting-started/android/setup/#collect-your-google-credentials

4.Firebase App Distributionにアップする

androidの側でもfirebase_app_distributionプラグインをインストールする。途中、Gemfileを作るか聞かれるので"y"と答えておく。

$ fastlane add_plugin firebase_app_distribution

GemfileGemfile.lockfastlane/Pluginfileが作成される。あとはFastfileにfirebase_app_distributionのアクションを追加する。

default_platform(:android)

platform :android do

  desc "Submit a new Staging Build to Firebase AppDistribution"
  lane :staging do
    firebase_app_distribution(
      app: "(Firebase上のアプリ ID)",
      groups: "dev",
      release_notes: "from fastlane (32bit)",
      apk_path: "../build/app/outputs/apk/staging/release/app-staging-armeabi-v7a-release.apk",
      firebase_cli_path: `which firebase`.strip()
    )
    firebase_app_distribution(
      app: "(Firebase上のアプリ ID)",
      groups: "dev",
      release_notes: "from fastlane (64bit)",
      apk_path: "../build/app/outputs/apk/staging/release/app-staging-arm64-v8a-release.apk",
      firebase_cli_path: `which firebase`.strip()
    )

  end

end

apkの出力自体はすでにFlutterで行っているので、firebase_app_distributionのapk_pathに出力されたapkのパスを渡してある。

firebase_app_distributionの実行にfirebase-toolsのバージョン7.4.0以上が必要なので、インストールする。今回はローカルからのアップなので、Firebaseへのログインもしておく。
すでにインストールしている場合はここはスキップする。

$ npm install -g firebase-tools
$ firebase login

以上で準備は整ったので、fastlaneを実行する。Gemfileを作ったので、bundle execから起動する。

$ bundle exec fastlane staging

おわり

iOS編と同様に、App Distributionに配信できるようになった。
次はGithub Actionsでビルドしたり、GooglePlayにアップできるようにもしたいところ。

9
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
9
6