2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

Fastlane 자동 배포에서 versioning은 어떻게 관리하나요?

_____
Q: Fastlane 자동 배포에서 버전 관리는 어떻게 하나요?

A: Fastlane에서는 앱의 버전 관리(versioning)를 자동화하기 위해 다양한 방법과 도구를 제공합니다. 주요 방식은 다음과 같습니다.

1. 버전 넘버와 빌드 넘버 분리 관리
- `version_name` (예: 1.0.3) : 사용자에게 보여지는 앱의 버전
- `build_number` (예: 45) : 내부 빌드 식별 번호, 보통 빌드마다 증가
Fastlane의 `increment_version_number`와 `increment_build_number` 액션을 사용해 자동으로 버전과 빌드를 올릴 수 있습니다.

2. 자동 증가(Increment) 액션 사용
- `increment_version_number` : Info.plist(iOS) 또는 build.gradle(Android) 내 `CFBundleShortVersionString` 혹은 `versionName`을 증가
- `increment_build_number` : 빌드 넘버인 `CFBundleVersion` 또는 `versionCode`를 자동 증가
예를 들어, 배포 시마다 빌드 넘버를 1씩 올리도록 스크립트에 포함시켜 자동 증분이 가능.

3. Git 태그 혹은 커밋 메시지와 연동
- 버전 번호를 Git 태그 또는 커밋 메시지에서 읽어와 사용하는 방법
- `get_version_number` / `get_build_number` 액션으로 현재 설정된 버전을 불러와 Fastlane 스크립트에서 활용 가능
- 자동 태그 생성과 푸시도 Fastlane으로 설정 가능하여 배포와 버전 업데이트를 동시에 처리

4. Custom 버전 생성 로직
- 날짜, 시간, 커밋 해시 등을 포함하는 커스텀 버전 번호 생성 가능
- Ruby 코드를 이용해 `version_number`에 동적으로 값 할당
- 예: `version_number = Time.now.strftime("%Y.%m.%d.%H%M")`

5. Android와 iOS 각각 설정 파일 수정
- iOS: Info.plist 파일 내 `CFBundleShortVersionString`, `CFBundleVersion` 수정
- Android: build.gradle 혹은 gradle.properties 내 `versionName`, `versionCode` 수정
- Fastlane 플러그인 `set_info_plist_value` 등으로 자동 변경 가능

6. 예제
```ruby
lane :beta do
increment_build_number(xcodeproj: "MyApp.xcodeproj")
version = get_version_number(xcodeproj: "MyApp.xcodeproj")
build_number = get_build_number(xcodeproj: "MyApp.xcodeproj")

빌드 및 배포 스텝
build_app(scheme: "MyApp")
upload_to_testflight(version: version, build_number: build_number)
end
```

7. 주의 사항
- 버전 번호 포맷은 App Store, Google Play 정책에 맞춰야 함
- 빌드 넘버는 항상 증가해야 하며 중복되면 배포 실패 가능
- 팀 내 버전 관리 규칙과 연동 필요

---

정리하자면, Fastlane은 `increment_version_number`, `increment_build_number` 등 기본 액션과 Git 연동, 커스텀 스크립트를 통해 자동으로 버전을 업데이트하며, 이를 바탕으로 빌드 및 배포를 원활하게 자동화할 수 있도록 설계되어 있습니다.
Fastlane을 사용한 자동 배포에서 버전 관리는 매우 중요한 작업입니다.

Fastlane은 App 언어(예: iOS, Android)에 따라 다양한 방법과 도구를 제공하여 버전 관리를 쉽게 할 수 있도록 돕습니다.

다음은 Fastlane에서 버전 관리를 효율적으로 하는 방법에 대한 설명입니다.

1. 버전 번호 설정 Fastlane을 통해 앱의 버전 번호와 빌드 번호를 설정할 수 있습니다.

보통 `version`과 `build` 번호는 `Fastfile` 또는 `Appfile`에서 동적으로 관리합니다.

```ruby lane :increment_version do increment_version_number( bump_type: "patch" 'patch', 'minor', 'major' 중 선택 ) increment_build_number end ``` 위의 예시에서 `increment_version_number`는 주어진 타입에 따라 버전 번호를 증가시키고, `increment_build_number`는 빌드 번호를 자동으로 증가시킵니다.



2. 버전 관리 도구 사용 Fastlane은 `agvtool`을 사용하여 Xcode 프로젝트의 버전 코드를 자동으로 관리할 수 있습니다.

이를 통해 Git을 통해 버전 변경 사항을 기록할 수 있습니다.

```ruby lane :bump_version do sh("agvtool new-version -all {new_version_number}") sh("agvtool new-marketing-version {new_marketing_version}") end ```

3. 자동화된 커밋 및 태그 Fastlane은 버전이 변경된 후, 자동으로 새로운 커밋을 생성하고 태그를 달 수 있는 기능을 제공합니다.

```ruby lane :release do increment_version_number commit_version_bump tag_version push_to_git_remote end ``` 이렇게 설정하면, 각 버전 출시 때마다 Git에 변경 사항을 커밋하고 태그를 추가하여 추적할 수 있습니다.



4. CI/CD 통합 Fastlane을 CI/CD 도구(예: GitHub Actions, GitLab CI, CircleCI 등)에 통합하면 배포 프로세스를 더욱 원활하게 진행할 수 있습니다.

CI/CD 환경에서 버전 번호를 관리하는 스크립트를 작성하면 요청된 작업에 따라 자동으로 버전이 증가하고 배포됩니다.



5. 경고 및 체크 Fastlane이 각 빌드 설정 시, 필수적인 버전 관리 요소가 설정되어 있는지 확인하는 스크립트를 추가할 수 있습니다.

예를 들어, 버전 번호나 빌드 번호가 잘 설정되었는지 확인하는 체크를 추가하여, 누락된 부분 없이 배포를 진행할 수 있습니다.

결론 Fastlane을 활용하여 자동 배포 과정에서 버전 번호와 빌드 번호를 효과적으로 관리하면, 배포 프로세스에서 발생할 수 있는 오류를 줄이고, 개발자와 팀원 간의 협업을 강화할 수 있습니다.

각 프로젝트의 요구 사항에 따라 적절한 스크립트를 작성하고, CI/CD 파이프라인과 통합하여 효율적인 배포 시스템을 구축하는 것이 중요합니다.

작성자: 정하연 [비회원] | 작성일자: 1년 전 2025-04-15 23:40:50
조회수: 146 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.