Skip to content

Fastlane

Jinwon Choi edited this page Mar 19, 2025 · 1 revision

image

도입 배경

매주 배포를 수행해야 한다.

지속적으로 코드의 변경사항을 프로덕트에 통합하고 배포해야 하므로 파이프라인을 구축하기 위하여 Fastlane을 사용하기로 결정하였다.

image 1

  • CI/CD란?

    파이프라인은 코드를 빌드, 테스트, 배포하는 과정을 거쳐 소프트웨어 개발을 추진하는 프로세스이며, CI/CD라고도 합니다.

    프로세스를 자동화함으로써 인적 오류를 최소화하고 소프트웨어 출시 방식에 일관된 프로세스를 유지하는 것을 목표로 합니다. 파이프라인에 포함된 툴에는 코드 컴파일, 유닛 테스트, 코드 분석, 보안, 바이너리 생성 등이 있습니다.

    https://www.redhat.com/ko/topics/devops/what-cicd-pipeline

개요

fastlane은 개발 외에 code signing, 릴리즈/배타 배포 등의 지루한 작업을 자동화 해주는 프레임워크다.

설명

핵심 기능

  • 빌드 자동화:
    • Fastlane은 gym을 통해 iOS 및 Android 앱의 빌드를 자동화합니다. 이를 통해 수동으로 빌드를 진행하는 것보다 훨씬 더 빠르고 일관된 방식으로 앱을 빌드할 수 있습니다.
  • 배포 자동화:
    • Fastlane은 앱을 Apple App Store나 Google Play Store에 자동으로 배포하는 기능을 제공합니다. deliversupply 도구를 사용하여 스토어에 앱을 업로드하고 메타데이터를 관리합니다.
  • 테스트 자동화:
    • scan을 사용해 iOS 및 Android 앱의 테스트를 자동화할 수 있습니다. Fastlane은 자동화된 테스트 결과를 보고서 형태로 제공하여, 오류나 문제를 신속히 파악하고 수정할 수 있도록 도와줍니다.
  • 앱 서명 및 인증서 관리:
    • match는 코드 서명 관리 기능을 제공하여, 인증서 및 프로비저닝 프로필을 안전하고 간편하게 관리할 수 있도록 지원합니다.
  • 배포 전후 작업 자동화:
    • Fastlane은 앱을 배포하기 전후의 작업을 자동화하는 여러 기능도 제공합니다. 예를 들어, snapshot을 통해 iOS 앱의 스크린샷을 자동으로 찍거나, sigh를 사용해 자동으로 서명된 프로비저닝 프로필을 가져올 수 있습니다.
  • CI/CD 통합:
    • Fastlane은 다양한 CI/CD 시스템(Jenkins, GitLab CI, GitHub Actions 등)과 쉽게 통합되어, 자동화된 빌드 및 배포 파이프라인을 구축할 수 있습니다.

구성

  1. Fastfile:
    • Fastfile은 Fastlane의 핵심 설정 파일입니다. 이 파일에서는 자동화하려는 다양한 작업(예: 빌드, 배포, 테스트 등)을 정의합니다. Ruby 기반의 DSL(Domain Specific Language)을 사용하여 작업 흐름을 구성합니다. 예를 들어, 앱을 빌드하고 테스트한 후 배포하는 일련의 작업을 Fastfile에 설정할 수 있습니다.
  2. Action:
    • Fastlane의 작업 단위로, 각 작업은 특정한 기능을 수행하는 단위입니다. 예를 들어, gym은 앱 빌드를, deliver는 앱 배포를, scan은 테스트를 실행합니다. Fastlane은 많은 내장 액션을 제공하며, 필요에 따라 커스텀 액션을 작성할 수도 있습니다.
  3. 플러그인:
    • Fastlane은 기본적인 기능 외에도 다양한 플러그인을 통해 추가적인 기능을 지원합니다. 예를 들어, 앱 배포 후 자동으로 릴리즈 노트를 작성하거나, 앱의 메타데이터를 자동으로 갱신하는 플러그인 등을 사용할 수 있습니다.
  4. CI/CD 시스템 통합:
    • Fastlane은 여러 CI/CD 도구와 쉽게 통합할 수 있습니다. 예를 들어, GitHub Actions, Jenkins, CircleCI와 연동하여 자동화된 빌드 및 배포 파이프라인을 구축할 수 있습니다.

사용법

  1. 설치

    brew install fastlane 명령어로 fastlane을 설치한다.

    gem install bundler 명령어로 bundler도 설치한다.

  2. fastlane 기본 설정하기

    fastlane init 명령어 입력한다.

    4가지 설정 중 하나를 선택해야한다.

    image 2
    1. 자동화된 스크린샷 옵션 (언어별로 번역된 앱 모습 캡처)
    2. 베타 배포 자동화
    3. 앱 배포 자동화 (심사 포함)
    4. 사용자 임의 옵션

    2, 3번의 경우 인증하기 - Apple ID와 비밀번호 그리고 인증번호를 입력한다.

  3. 설정 파일

    - `fastlane/Appfile`
    - `fastlane/Fastfile`
    - `Gemfile`
    - `Gemfile.lock`
    
    • Appfile: 앱의 번들 ID, app ID, team ID 정보가 담겨있음
      • 팀원들이 여러 아이디를 사용할 때, fastlane에서 제공하는 라이브러리 중 .env 를 이용하면 환경 변수로 설정하여 관리가능
    • Fastfile: 배포와 관련된 자동화 명령어들이 담겨있음
      • 배포 자동화, 빌드 버전 올리기, 슬랙 메세지
    • Gemfile: gem 목록이 담겨있음
    • Gemfil.lock: 의존성 버전 관리를 위한 정보가 담겨있음

    위 파일을 통해서 배포를 설정한다.

  4. 배포 fastlane [lane name] 명령어를 입력하여 배포한다.

Ref.

https://gyuios.tistory.com/241

https://oliveyoung.tech/blog/2021-09-08/Automatic-Distribution-iOS-Test-App-To-Fastlane/

Welcome to SniffMEET Wiki!

💬 허거덩 팀 규칙

개발 일지

구조
NI, MPC
프로파일링
리팩토링/리디자인
테스트
Supabase

기술 공유

회의록

회의록

트러블 슈팅

발표

💬 허거덩 팀 규칙

Clone this wiki locally