Fastlane에서 ReactNative 배포 자동화 (android)

수동 작업 자동화



ReactNative로 만든 앱을 내부적으로 테스트할 때 Fastlaneios판은 이쪽↓
Fastlane에서 ReactNative 배포 자동화 (ios)

주의점



ios 버전과 달리 android의 경우 처음 배포를 수동으로 실행해야합니다.keystore 를 만들고 internal에 앱을 배포했다고 가정합니다.


keystore 작성 정보



기본적으로 아래 공식 문서를 따르면 됩니다만, 마지막 작성시의 커맨드는 아래를 사용합니다.
Publishing to Google Play Store
cd android
./gradlew assembleRelease

google play console의 api 얻기



아래 공식 문서에 따라 (서비스 계정 사용) json 형식의 api를 얻습니다.
ぇぺぺrs. 오, ぇ. 코 m / 안 d 로이 d 푸 b hl = 그럼
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에 푸시 할 때 자동으로 fastlane을 실행할 수 있습니다.
자세한 내용은 아래로↓
Fastlane 명령을 Bitrise에 통합 (android,ReactNative)

좋은 웹페이지 즐겨찾기