[ReactNative] fastlane으로 배포 자동화 cicd

박정빈·2026년 3월 19일

React Native 사용기

목록 보기
31/40

공식문서를 보고 사전 설정을 해준다.
안드로이드 설정
IOS 설정


번호만 보고 따라하면 되도록 작성함

  1. 터미널에서 brew install fastlane 로 fastlane을 설치한다.

  2. rn프로젝트의 android,ios폴더에서 fastlane init를 실행한다.

  3. fastlane init 시작할 준비가 되었는지 확인하는 메시지가 표시된 후 몇 가지 정보를 입력해야 합니다. 빠르게 시작하려면 다음 단계를 따르세요.

  • 애플리케이션 패키지 이름을 입력하세요(예: io.fabric.yourapp).
  • JSON 시크릿 파일 경로를 묻는 메시지가 나오면 Enter 키를 누르세요.
  • fastlane을 통해 Google Play에 정보를 업로드할 계획인지 묻는 메시지가 나오면 'n'을 선택하세요(이 설정은 나중에 진행할 수 있습니다).

엔터를 누르며 init을 완료하면 Fastfile이 생겼을 것이다.

안드로이드

  1. 안드로이드 Fastfile을 조금 수정해서 다음과 같이 만들었다.
...
lane :beta do
    gradle(task: "bundleRelease")
    upload_to_play_store(track: 'internal')

  end
...

이제 fastlane beta를 입력하면 ./gradlew bundleRelease를 하는 것 처럼 aab파일을 만들게 되고 내부테스트 트랙에 배포를 하게된다.

여기까지 하면 aab파일은 만들어지지만 배포단계에서 에러가 난다.
구글플레이콘솔과 연결되지 않았기 때문이다.

Google Cloud Console에서 서비스 계정 생성 + Play Console 권한 부여를 해야한다.
5. [API 및 서비스 메뉴/API라이브러리]에서 Google Play Android Developer API를 검색해서 활성화한다.
6. [IAM 및 관리자/서비스계정]에서 서비스 계정 만들기
7. 계정이 만들어지면 그 계정을 눌러서 키 생성 + 저장
8. 그 계정의 이메일을 복사한다. 구글 플레이콘솔에서 사용자 및 권한에서 사용자로 이메일을 추가한다.
9. 저장한 키를 프로젝트의 안드로이드 폴더에 저장 android/~.json
10. android/fastlane/Appfile을 수정한다.

json_key_file("~.json") 
package_name("com.~.~") 
  1. fastlane beta 명령어를 사용하여 내부테스트로 배포가 된다. (배포할때마다 VersionCode를 올리는 것은 여전히 수동이다.)

IOS

  1. App Store Connect에 앱이 없다면 생성한다.
    5.[App Store Connect > 사용자 및 액세스 > 통합]에서 API 키를 생성 .p8 파일을 다운로드, Issuer ID와 Key ID를 메모
  2. ios/fastlane/Fastfile을 수정
default_platform(:ios)

platform :ios do
  desc "Push a new beta build to TestFlight"
  lane :beta do
    increment_build_number(xcodeproj: "g~.xcodeproj")
    api_key = app_store_connect_api_key(
    key_id: "~",
    issuer_id: "~",
    key_filepath: "./fastlane/~.p8", # p8 파일 경로 직접 지정
    duration: 1200,
    in_house: false
  )
    build_app(
      workspace: "~.xcworkspace",
      scheme: "~",
      configuration: "Release",
      clean: true,
      export_method: "app-store",
      export_options: {
        signingStyle: "automatic"
      },
      xcargs: "-allowProvisioningUpdates"
    )
    upload_to_testflight(
      api_key: api_key,
      skip_waiting_for_build_processing: false  # 업로드 후 처리 대기 시간을 건너뛸지 여부
    )
  end
end
  1. fastlane beta 명령어를 사용하여 testflight로 배포가된다.

추가
앱아이디,팀,계정등이 바뀌었을때 fastfile을 수정해야한다.
그때 필요한 ID찾는 법:
Developer Portal Team ID와 AppStore Connect Team ID 찾기

0개의 댓글