Fastlane: 개요, 빌드 자동화 및 게시

저자: IT Sectr 게시일: 2026-02-13 읽는 시간: 10 분

Fastlane은 iOS 및 Android용 모바일 앱의 빌드 및 게시를 자동화하는 도구입니다. Fastlane은 코드 서명, 빌드, 테스트 실행, 스크린샷 생성, App Store Connect 및 Google Play Console에 업로드를 관리합니다. 이는 모바일 개발에서 CI/CD의 사실상 표준입니다.

주요 요점

  • Fastlane은 자동화합니다 전체 모바일 릴리스 파이프라인을 하나의 명령으로: 빌드, 테스트, 서명 및 게시
  • Fastfile은 Ruby 구성 파일로, lanes(명명된 자동화 시나리오)를 설명합니다
  • iOS 및 Android 지원 — Fastlane은 Xcode, Gradle, App Store Connect, Google Play, TestFlight 및 Firebase와 함께 작동
  • match 및 sigh — iOS 개발을 위한 인증서 및 프로비저닝 프로필 관리
  • CI/CD 통합 — Fastlane은 GitHub Actions, GitLab CI, Bitrise, Jenkins 및 CircleCI에 통합됨

Fastlane — 개요

Fastlane은 모바일 개발의 일상적인 작업(애플리케이션 빌드, 테스트 실행, 스크린샷 생성, 인증서 관리, TestFlight/App Store/Google Play에 빌드 업로드)을 자동화하는 오픈소스 도구입니다. Fastlane은 Ruby로 작성되었으며 gem install fastlane 명령으로 RubyGems를 통해 배포됩니다.

Fastlane은 2015년 iOS 도구로 등장했지만 빠르게 Android로 확장되었습니다. 오늘날 수십 개의 액션(내장 명령)의 생태계이며, 이를 결합하여 lanes라는 시나리오를 만들 수 있습니다. 각 lane은 특정 작업을 수행합니다. 예: build_release는 릴리스 버전을 빌드하고, deploy_beta는 빌드를 TestFlight에 업로드합니다.

Fastlane은 Uber, Airbnb, Snapchat, Twitter 및 Shopify와 같은 기업에서 사용됩니다. 2024년 조사에 따르면 iOS 개발자의 60% 이상이 프로젝트에서 Fastlane을 사용합니다. 이 도구는 로컬 실행과 클라우드 CI 시스템 통합을 모두 지원하여 모바일 CI/CD의 사실상 표준이 되었습니다.

ruby
# Fastlane 설치
sudo gem install fastlane -NV

# 프로젝트에서 초기화
fastlane init

초기화 후 Fastlane은 세 개의 파일이 있는 fastlane/ 디렉토리를 생성합니다: Fastfile(시나리오), Appfile(앱 설정), Matchfile(인증서 설정). 이 구조는 iOS와 Android 모두 동일합니다.

Fastfile 및 lanes

Fastlane의 주요 구성 파일은 Fastfile입니다. 프로젝트 루트의 fastlane/ 디렉토리에 있습니다. Fastfile은 Ruby로 작성됩니다. 각 lane은 액션 시퀀스가 있는 명명된 블록입니다. lane은 매개변수를 받고, 다른 lane을 호출하고, 값을 반환할 수 있습니다.

ruby
# fastlane/Fastfile — iOS 예시
default_platform(:ios)

platform :ios do
  desc "Build and upload to TestFlight"
  lane :beta do
    match(type: "appstore")
    gym(scheme: "MyApp", configuration: "Release")
    pilot(skip_waiting_for_build: true)
  end

  desc "Deploy to App Store"
  lane :release do
    ensure_git_status_clean
    match(type: "appstore")
    gym(scheme: "MyApp")
    deliver(
      skip_metadata: true,
      skip_screenshots: true
    )
    push_to_git_remote(tags: true)
  end
end

각 lane은 fastlane ios beta 또는 fastlane ios release 명령으로 실행됩니다. Fastfile은 변수, 조건문, 루프 및 외부 스크립트 호출을 지원하는 완전한 Ruby 파일입니다. 개발자는 private_lane(로컬 메서드) 및 다른 Fastfile의 import를 통해 코드를 재사용할 수 있습니다.

Fastlane은 대부분의 작업에 대해 200개 이상의 내장 액션을 제공합니다. 필요한 액션이 없으면 Ruby로 직접 작성하거나 sh("...")로 셸 명령을 호출할 수 있습니다. 액션은 매개변수(빌드 설정, 경로, 액세스 토큰)를 받고 후속 단계에서 사용할 결과를 반환할 수 있습니다.

iOS 빌드 자동화

iOS용 Fastlane은 세 가지 주요 문제를 해결합니다: 인증서 및 프로비저닝 프로필 관리, Xcode를 통한 IPA 빌드, App Store Connect 및 TestFlight에 게시. 이러한 각 작업은 별도의 액션으로 처리됩니다.

match는 인증서 관리를 위한 액션입니다. 모든 인증서와 프로비저닝 프로필을 암호화된 Git 저장소에 저장합니다. 모든 개발자와 CI 서버가 동일한 파일 세트를 사용하므로 충돌과 만료된 인증서 문제가 없습니다. 새 기기가 추가되면 Match가 자동으로 프로필을 업데이트합니다.

sigh는 Apple Developer Portal을 통해 프로비저닝 프로필을 생성하고 다운로드합니다. 특정 유형(development, ad-hoc, appstore)의 프로필이 빠르게 필요할 때 사용됩니다.

gym은 IPA를 빌드합니다. Gym은 최적의 매개변수로 xcodebuild를 래핑하고, 자동으로 스키마, 구성, 내보내기 옵션을 선택하여 서명된 IPA를 생성합니다. 예: gym(scheme: "MyApp", export_method: "app-store").

pilot은 TestFlight를 관리합니다. 빌드를 업로드하고, 테스터를 추가하고, 검토 상태를 추적합니다. deliver는 메타데이터, 스크린샷, 가격 책정 및 버전 관리를 포함한 전체 App Store 게시를 처리합니다.

ruby
# iOS 앱 빌드 및 게시
lane :deploy_ios do
  cocoapods
  match(type: "appstore", readonly: true)
  gym(scheme: "MyApp", export_method: "app-store")
  pilot(changelog: "Bug fixes and performance improvements")
end

App Store Connect 작업에는 액세스 토큰이 필요합니다. Fastlane은 두 가지 인증 방법을 지원합니다: App Store Connect API Key(권장) 및 2단계 인증이 있는 Apple ID. API 키는 대화식 비밀번호 입력이 필요하지 않으므로 CI/CD에 더 편리합니다.

액션목적수동 작업
match인증서 및 프로필 관리Apple Developer Portal
sigh프로비저닝 프로필 생성Xcode + Developer Portal
gymIPA 빌드xcodebuild + xcrun
pilotTestFlight 업로드Xcode Organizer
deliverApp Store 게시App Store Connect Web
scanUI 테스트 실행xcodebuild test

Android 빌드 자동화

Android에서 Fastlane은 Gradle을 통한 빌드, APK 및 AAB 서명, Google Play Console에 업로드 및 Firebase App Distribution을 자동화합니다.

gradle은 Android 빌드의 주요 액션입니다. 필요한 작업으로 Gradle 래퍼를 호출합니다: gradle(task: "assembleRelease") 또는 AAB의 경우 gradle(task: "bundleRelease"). 플래그, 환경 변수 및 gradle.properties 경로를 전달할 수 있습니다.

supply는 APK 또는 AAB를 Google Play Console에 업로드합니다. Supply는 버전, 트랙(internal, alpha, beta, production), 릴리스 노트, 가격 책정 및 국가별 배포를 관리합니다. 예: supply(track: "beta", release_status: "completed").

screengrab은 Google Play용 스크린샷을 생성합니다. 다양한 기기와 언어에서 앱의 스크린샷을 캡처하는 계측 테스트를 실행합니다. 결과 스크린샷은 supply를 통해 업로드됩니다.

ruby
# Android 앱 빌드 및 게시
lane :deploy_android do
  gradle(task: "clean bundleRelease")
  supply(
    track: "beta",
    release_status: "completed",
    version_code: 42
  )
end
액션목적수동 작업
gradleGradle로 빌드./gradlew assembleRelease
supplyGoogle Play에 업로드Google Play Console Web
screengrab스크린샷 생성수동 스크린샷 + ImageMagick
firebase_app_distributionFirebase 배포Firebase Console Upload

CI/CD 통합

Fastlane은 CI/CD 파이프라인에서 작동하도록 설계되었습니다. 비대화형 모드, 환경 변수 및 빌드 아티팩트를 올바르게 처리합니다. 아래는 인기 CI 시스템과의 통합 예시입니다.

GitHub Actions에서 Fastlane은 Ruby 스크립트로 실행됩니다. 일반적인 워크플로: Ruby와 Fastlane 설치, 키 구성(secrets를 통한 인증서, API 토큰), lane 실행. iOS에는 macOS 러너가 필요합니다. Android는 ubuntu-latest에서 작동합니다.

GitLab CI에서 Fastlane은 .gitlab-ci.yml에서 유사한 설정으로 사용됩니다: 종속성 설치, fastlane 실행, 아티팩트 전달. GitLab CI는 macOS 및 Linux 러너를 지원합니다.

Bitrise — 모바일 앱용 특화 CI/CD — 에는 내장 Fastlane 지원이 있습니다. Bitrise Workflow는 Fastlane Step을 호출하거나 fastlane으로 사용자 정의 스크립트를 실행할 수 있습니다. Bitrise는 Code Signing 관리자를 통해 인증서를 관리합니다.

ruby
# 조건부 테스트 실행이 있는 CI/CD용 Fastfile
lane :ci_test do
  scan(scheme: "MyApp", code_coverage: true)
end

lane :ci_beta do
  ensure_git_status_clean
  version_bump_podspec(path: "MyApp.podspec")
  match(type: "appstore", readonly: true)
  gym(scheme: "MyApp", export_method: "app-store")
  pilot(distribute_external: true)
end

CI/CD 통합의 중요한 측면은 시크릿 저장입니다. Fastlane은 dotenv를 통해 .env 파일과 환경 변수를 사용합니다. iOS의 경우 중요한 변수: MATCH_PASSWORD, FASTLANE_APPLE_API_KEY, FASTLANE_APPLE_API_KEY_ID. Android의 경우: SUPPLY_JSON_KEY_DATA — Google Play 서비스 계정의 내용.

인기 Fastlane 액션

Fastlane에는 200개 이상의 내장 액션이 포함되어 있습니다. 아래는 플랫폼 및 설명과 함께 가장 인기 있는 액션의 개요입니다.

액션플랫폼설명
gymiOS최적화된 xcodebuild 매개변수로 IPA 빌드
matchiOSGit을 통해 인증서 및 프로비저닝 프로필 동기화
pilotiOSTestFlight에 빌드 업로드 및 테스터 관리
deliveriOS메타데이터와 함께 App Store에 앱 게시
scaniOS리포트 생성과 함께 유닛 및 UI 테스트 실행
gradleAndroidGradle 작업 실행: assemble, bundle, test
supplyAndroidAPK 및 AAB를 Google Play Console에 업로드
screengrabAndroidGoogle Play용 자동 스크린샷
firebase_app_distributionAndroidFirebase를 통해 빌드 배포
snapshotiOSApp Store용 시뮬레이터에서 자동 스크린샷
increment_build_numberiOSXcode 프로젝트에서 빌드 번호 자동 증가
appcenter_upload둘 다App Center에 빌드 업로드

필요한 액션을 찾으려면 fastlane action [이름] 명령을 사용하세요. 문서, 매개변수 및 예제를 표시합니다. 전체 목록은 로컬에서 사용 가능: fastlane actions.

Fastlane은 또한 플러그인 — 새로운 액션을 추가하는 커뮤니티 확장 — 을 지원합니다. 플러그인은 fastlane add_plugin [이름]으로 설치되며 RubyGems 레지스트리에서 사용 가능합니다. 인기 플러그인 예: fastlane-plugin-versioning(버전 관리), fastlane-plugin-sentry(디버그 심볼을 Sentry에 업로드), fastlane-plugin-teams(Microsoft Teams에 알림).

자주 묻는 질문

Fastlane이 무엇이고 왜 필요한가요?

Fastlane은 모바일 앱의 빌드 및 게시를 자동화하는 도구입니다. 수동 작업(빌드, 코드 서명, 스토어 업로드)을 하나의 명령으로 대체합니다. Fastlane은 릴리스 시간을 몇 시간에서 몇 분으로 단축하고 게시 중 인적 오류를 제거합니다.

Fastlane을 Android 전용 또는 iOS 전용으로 사용할 수 있나요?

네. Fastlane은 두 플랫폼을 독립적으로 지원합니다. iOS에는 macOS가 필요하고 Android에는 Linux만 있으면 됩니다. 하나의 Fastfile에서 플랫폼별로 lanes를 분리할 수 있습니다: platform :ios do ... endplatform :android do ... end.

Fastlane은 iOS 인증서를 어떻게 관리하나요?

match 액션을 통해 관리합니다. 암호화된 인증서와 프로비저닝 프로필을 Git 저장소에 저장합니다. 각 개발자가 저장소를 클론하고, match가 MATCH_PASSWORD 변수의 비밀번호로 파일을 해독하여 키체인에 설치합니다. "내 컴퓨터에서는 작동합니다" 문제를 해결합니다.

Fastlane이 Firebase App Distribution과 함께 작동하나요?

네. Fastlane에는 APK 및 IPA를 Firebase App Distribution에 업로드하는 내장 firebase_app_distribution 액션이 있습니다. 테스터 추가를 위한 firebase_app_distribution_add_testers도 있습니다. 대안으로 App Center용 appcenter_upload 액션이 있습니다.

CI 서버에 Fastlane을 어떻게 설치하나요?

Fastlane은 RubyGems를 통해 설치됩니다: gem install fastlane -NV. iOS에는 macOS와 Xcode가 필요합니다. Android에는 Linux 또는 macOS와 JDK 및 Android SDK가 필요합니다. GitHub Actions에는 Ruby와 Fastlane 설치를 위한 ruby/setup-ruby 액션이 있습니다. 환경 변수는 CI 시스템의 secrets를 통해 전달됩니다.

Fastlane과 Bitrise 또는 Jenkins의 차이점은 무엇인가요?

Fastlane은 빌드 및 게시 작업을 자동화하기 위한 라이브러리 및 CLI입니다. BitriseJenkins는 완전한 CI/CD 플랫폼입니다. Fastlane은 그 안에서 실행됩니다: Jenkins는 Fastlane을 파이프라인 단계로 실행하고, Bitrise는 전용 Step을 통해 Fastlane을 호출합니다. Fastlane은 CI 시스템을 대체하지 않고 모바일 특화 기능으로 보완합니다.

요약

  • Fastlane — iOS 및 Android용 모바일 앱의 빌드, 테스트 및 게시를 자동화하는 오픈소스 도구
  • Fastfile — 액션 시퀀스가 있는 시나리오(lanes)를 설명하는 Ruby 구성 파일
  • match + gym + pilot — iOS 표준 파이프라인: 인증서 관리, IPA 빌드, TestFlight 업로드
  • gradle + supply — Android 표준 파이프라인: Gradle로 빌드, Google Play Console에 업로드
  • CI/CD 통합 — Fastlane이 환경 변수를 통해 GitHub Actions, GitLab CI, Bitrise, Jenkins, CircleCI에 통합
  • 200+ 액션 — 코드 서명, 빌드, 테스트, 스크린샷, 게시 및 알림을 위한 내장 명령
  • 플러그인 — 커뮤니티 확장이 새 액션 추가: 버전 관리, Sentry, 메신저 알림

턴키 방식의 모바일 애플리케이션을 개발해 드립니다

IT Sectr는 2017년부터 스타트업과 기업을 위한 iOS 및 Android 애플리케이션을 만듭니다. 저희가 상담해 드리고 최적의 솔루션을 제안하겠습니다.

프로젝트 논의

더 읽어보기