1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

FastlaneでReactNativeのデプロイを自動化する(android)

Last updated at Posted at 2019-08-24

手動作業を自動化する

ReactNativeで作成したアプリを内部テストする際に、手動でGoogle play consoleに上げるところをFastlaneを使用し、自動化します。
ios版はこちら↓
FastlaneでReactNativeのデプロイを自動化する(ios)

注意点

ios版と違い、androidについては初めのデプロイを手動で実行する必要があります。
keystoreを作成し、internalにアプリをデプロイしたことを前提に話を進めます。
Screen Shot 2019-08-24 at 14.42.59.png

keystoreの作成について

基本的に下記公式ドキュメントに従えば良いですが、最後の作成の際のコマンドは下記を使用します。
Publishing to Google Play Store

cd android
./gradlew assembleRelease

google play consoleのapiの入手

下記公式ドキュメントに沿って(サービス アカウントを使用する)、json形式のapiを入手します。
https://developers.google.com/android-publisher/getting_started?hl=ja
jsonファイルをandroid/secure(新規作成)直下に保存します。

fastlaneの設定

sudo gem install bundler
cd android
bundle init

Gemfileが作成されるので、下記を記述します。

Gemfile
gem "fastlane"

fastlaneをインストールします。

bundle update

次にfastlaneを初期化します。

bundle exec fastlane init

質問に対する回答
Package name -> android/app/build.gradle内にあるapplicationIdを入力
Path to the json -> secure/***.jsonを入力
meta -> y

プラグインの導入

fastlane実行の際に、自動的にversion numberを上げるためにプラグインを導入します。

bundle exec fastlane add_plugin increment_version_code

Gemfileに下記が自動的に記述されます。

Gemfile
plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
eval_gemfile(plugins_path) if File.exist?(plugins_path)

fastfileの編集

下記を記述します。

default_platform(:android)

platform :android do

  // descは説明文ですので、任意の文を挿入
  desc "submit internal release to Google Play Store"
  // internalテストに関する記述
  lane :internal do
    # build.gradleファイルのversion numberを実行する度に上げる
    increment_version_code(
      gradle_file_path: "./app/build.gradle"
    )
    # apkファイルの設定
    gradle(task: "assembleRelease")
    # apkファイルの検索
    supply(
      track: "internal",
      apk: "#{lane_context[SharedValues:: GRADLE_APK_OUTPUT_PATH]}"
    )
  end

// 以下は他のデプロイ先に関する記述です。
  desc "submit alpha release to Google Play Store"
  lane :alpha do
    increment_version_code(
      gradle_file_path: "./app/build.gradle"
    )
    gradle(task: "assembleRelease")
    supply(
      track: "alpha",
      apk: "#{lane_context[SharedValues:: GRADLE_APK_OUTPUT_PATH]}"
    )
  end

  desc "submit beta release to Google Play Store"
  lane :beta do
    increment_version_code(
      gradle_file_path: "./app/build.gradle"
    )
    gradle(task: "assembleRelease")
    supply(
      track: "beta",
      apk: "#{lane_context[SharedValues:: GRADLE_APK_OUTPUT_PATH]}"
    )
  end

  desc "submit production release to Google Play Store"
  lane :production do
    increment_version_code(
      gradle_file_path: "./app/build.gradle"
    )
    gradle(task: "assembleRelease")
    supply(
      track: "production",
      apk: "#{lane_context[SharedValues:: GRADLE_APK_OUTPUT_PATH]}"
    )
  end

end

fastlaneの実行

bundle exec fastlane internal

実行後、google play console内にてアプリがデプロイされたことが確認できます。
alpha beta productionへのデプロイについても上記コマンドのinternalを書き換えれば実行可能です。

Bitriseへ組み込む

CIツールのBitriseを使用すると、githubにpushした際に自動的にfastlaneを実行することができます。
詳細は下記へ↓
FastlaneのコマンドをBitriseに組み込む(android,ReactNative)

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?