LoginSignup
2
2

More than 3 years have passed since last update.

ReactNativeアプリをAppDistributionにfastlaneでデプロイする方法

Posted at

はじめに

今回はfastlane公式ドキュメントにReactNativeでfastlaneを導入する方法が書いていなかったので、その方法について、AppDistributionでのiOSアプリのベータ配布をする方法と共に書いていきたいと思います!!

fastlaneとは

fastlaneとはiOS, Android, flutter, ReactNative等で使用できるツールです。テスト実行, iOSの証明書発行, Beta配布, リリース等のあらゆるタスクを半自動化してくれるツールです。詳しくはfastlaneの公式ドキュメントをご覧ください!!

AppDistributionとは

AppDistributionとはfirebaseが提供するベータ配布用のツールです。TestFlightとは違い、審査というものが一切ないので開発チーム内でのベータ配布に便利です。公式ドキュメントはこちら

セットアップ

早速プロジェクトにfastlaneを導入していきます!!Homebrewを使った方法もあるのですが、今回はBundlerを利用してインストールしていきたいと思います。

ターミナル
$ bundle init

まずはじめにbundle initしましょう。Gemfileという名前のファイルが生成されると思うのでそのファイルを開いて以下の用に入力してください。

Gemfile
# frozen_string_literal: true

source "https://rubygems.org"

git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }

gem "cocoapods"
gem "fastlane"

gemをインストールします。
これでfastlaneコマンドが使えるようになったかと思います!!

ターミナル
$ bundle install --path vendor/bundle

下記のコマンド、ネイティブのプロジェクトではないので警告が出てきますが気にせずに進めて大丈夫です。

ターミナル
$ fastlane init

firebase-cliのインストールをして、firebaseアカウント(Googleアカウント)でログインします。
必ず最新のバージョンであることを確認してください。AppDistributionが使用できない場合があります

ターミナル
$ npm install -g firebase-tools
$ firebase login

次にAppfileの編集をしていきます。

fastlane/Appfile
app_identifier("[iOSアプリのバンドルID]")
apple_id("[Apple ID]")

これで基礎的な設定は完了です!!

Firebaseプロジェクトを作成する

Firebaseコンソールにアクセスし、ベータ配布用のプロジェクトを作成します。
作成が完了したら、左側のバーからAppDistributionタブを開いてiOSアプリまたはAndroidアプリ、もしくは両方の追加を行ってください。

自動化用のスクリプトを書いていく

自動化用のスクリプトを書いていこうと思います。fastlane/Fastfileを次のように編集してください!!

fastlane/Fastfile
APP_NAME = "[YOUR_APP_NAME]"
XCODE_PROJECT_PATH = "./ios/#{APP_NAME}.xcodeproj"
XC_WORKSPACE_PATH = "./ios/#{APP_NAME}.xcworkspace"

platform :ios do
  desc 'upload beta ios app to AppDistribution'
  lane :beta_deploy do |options|
    # ビルド用にpod installを行う
    cocoapods(podfile: "./ios/Podfile")
    # Xcodeプロジェクトのビルド番号をインクリメントする
    increment_build_number(xcodeproj: XCODE_PROJECT_PATH)
    # iosプロジェクトをXcodeビルド
    gym(
      scheme: APP_NAME,
      # キャッシュを削除してビルド
      clean: true,
      workspace: XC_WORKSPACE_PATH,
      output_directory: './build',
      output_name: "#{APP_NAME}-beta"
    )
    firebase_app_distribution(
      # 後ほど説明
      app: ENV["FIREBASE_APP_IDENTIFIER_IOS"],
      # ベータテスターのメールアドレスをカンマ区切りで入力します。
      testers: "ren.example@example.com, ren.hoge@hoge.com",
      release_notes: "beta version #{get_version_number(xcodeproj: XCODE_PROJECT_PATH, target: APP_NAME)}",
      # 以下、ターミナルにて `which firebase`と入力することで
      # firebase-cliのディレクトリが出力されるのでその結果を入力してください
      firebase_cli_path: "[Firebase CLIのディレクトリ]"
    )
  end
end

細かな説明はコード内にコメントアウトで書いているので省きます。
上記コードの中にあったENV["FIREBASE_APP_IDENTIFIER_IOS"]という表記について説明します。
こちらのidはFirebaseのプロジェクトコンソールの全般設定画面の下の方に表記があるのでそのアプリ Idを入力してください!!

でけた!!

これであとは動かすだけです!!実際に下記のコマンドを打ってみましょう!!

ターミナル
$ fastlane ios beta_deploy

上記コマンド、先ほどFastfileに書いたようにxcode buildからAppDistributionまでの広い範囲を一気に実行するのでなかなか時間がかかります。プロジェクトの規模にもよりますが少なくとも5分はかかるかと思います!!

コマンドの実行が終わったら先ほどのFirebaseのプロジェクトコンソール画面に戻ってAppDistributionタブを開いてみてください!!先ほどFastfileに入力した release_noteやtester等の情報がアップロードされていれば成功です!!

最後に、testerとして指定したメールアドレスを確認しましょう。そちらにベータテストへの招待リンクが届いているはずなので、指示に沿ってインストールしてみてください!!

さいごに

いかがでしたでしょうか?
この記事に不備等ございましたら、コメント欄にて教えていただけると幸いです!!

2
2
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
2
2