Fastlane 자동 배포에서 버전 관리 시스템은 어떻게 설정하나요?
_____A: Fastlane에서 자동 배포 시 버전 관리 시스템(예: Git)과의 연동은 주로 다음과 같은 방식으로 설정합니다:
1. Git 연동 확인
프로젝트 루트에 Git 저장소가 초기화되어 있어야 하며, fastlane이 실행되는 환경에서 Git 명령어가 정상 작동하는지 확인합니다.
2. 버전 번호 자동 업데이트
- `increment_version_number` 및 `increment_build_number` 액션을 사용해 `Info.plist`나 `build.gradle` 등의 버전 번호를 자동으로 증가시킬 수 있습니다.
- 예를 들어 iOS의 경우:
```ruby
increment_version_number(
bump_type: "patch" major, minor, patch 중 선택
)
increment_build_number
```
- Android의 경우:
```ruby
increment_version_code
increment_version_name(
version_name: "1.0.1"
)
```
3. Git 커밋 및 푸시 자동화
버전 번호 변경 후 fastlane 내에서 다음과 같이 Git에 커밋 및 푸시를 자동화합니다:
```ruby
sh("git add .")
sh("git commit -m 'Bump version number'")
sh("git push origin main")
```
또는 fastlane의 `git_commit` 및 `push_to_git_remote` 액션을 사용:
```ruby
git_commit(path: ".", message: "Bump version number by Fastlane")
push_to_git_remote(
branch: "main",
force: false
)
```
4. 자동 태깅(Tagging)
배포 시점에 태그를 자동 생성하여 버전 관리하는 것이 좋습니다:
```ruby
add_git_tag(
tag: "v {get_version_number}",
message: "Release version {get_version_number}"
)
push_to_git_remote(
remote: "origin",
tags: true
)
```
5. 환경 변수 및 인증 설정
Git 접근에 SSH 키 또는 토큰 등이 필요하다면, CI/CD 환경 변수로 설정하여 무인 푸시가 가능하도록 합니다.
6. fastlane 스크립트 예시
```ruby
lane :release do
increment_version_number(bump_type: "patch")
increment_build_number
build_app
git_commit(path: ".", message: "Version bump to {get_version_number}. {get_build_number}")
add_git_tag(tag: "v {get_version_number}")
push_to_git_remote(remote: "origin", branch: "main", tags: true)
upload_to_app_store
end
```
이처럼 Fastlane의 내장 액션과 Git 명령어를 조합하여 버전 관리 시스템과 유기적으로 연동함으로써, 자동 배포 프로세스 내에서 버전 관리가 완전히 자동화됩니다.
아래 단계별 가이드를 통해 Fastlane과 버전 관리 시스템을 통합하는 방법을 설명하겠습니다.
1. 버전 관리 시스템 선택 Fastlane은 Git을 비롯한 다양한 VCS를 지원합니다.
Git을 예로 들어 설명하겠습니다.
다른 VCS를 사용할 경우, 해당 VCS에 맞춘 명령어를 사용하시면 됩니다.
2. Fastlane 환경 설정 Fastlane을 프로젝트에 추가하려면, 먼저 Fastlane을 설치하고 초기화하십시오. ```bash gem 설치 gem install fastlane Fastlane 초기화 cd
3. Git Repository 설정 Fastlane을 사용하여 버전관리를 위해 Git을 설정합니다.
아직 Git이 초기화되지 않았다면 다음 명령어를 사용하여 Git 레포지토리를 초기화합니다.
```bash git init ``` 또한, `.gitignore` 파일을 설정하여 Fastlane에서 생성된 아티팩트나 불필요한 파일이 포함되지 않도록 할 수 있습니다.
```text .gitignore 예시 fastlane/report.xml fastlane/Preview.html ```
4. 버전 관리 사양 결정 버전 관리할 버전 번호를 결정하고 이를 Fastlane에 통합합니다.
`Fastfile`에서 `increment_version_number` 및 `commit_version_bump` 작업을 사용하여 버전 번호를 관리할 수 있습니다.
예를 들어, `Fastfile`에서 아래와 같이 설정할 수 있습니다: ```ruby lane :bump_version do increment_version_number( bump_type: "patch" major, minor, patch 중 선택 ) commit_version_bump( message: "Bump version to {version_number}", force: true 강제 커밋 ) end ```
5. Git에 변경 사항 푸시 버전이 변경된 후 Git에 푸시하는 것이 중요합니다.
자동 배포 작업에서 이러한 단계를 포함시키는 것이 좋습니다.
```ruby lane :deploy do 코드 빌드 및 테스트 진행 ... Git에 푸시 git_add(path: 'path/to/your/files') git_commit(commit_message: "Deploy version {version_number}") git_push end ```
6. CI/CD 환경과 통합 Fastlane을 CI/CD 환경에서 사용하는 경우, CI/CD 도구(예: GitHub Actions, CircleCI)와 통합하여 자동으로 Fastlane을 실행하도록 설정할 수 있습니다.
CI 도구의 스크립트에서 아래와 같은 명령어를 통해 Fastlane을 실행할 수 있습니다: ```yaml steps: - name: Checkout code uses: actions/checkout@v2 - name: Setup Ruby uses: ruby/setup-ruby@v1 with: ruby-version: '3.0' 필요한 Ruby 버전 - name: Install Fastlane run: gem install fastlane - name: Run Fastlane run: fastlane deploy ```
7. 테스트 및 검증 설정이 완료되면 Fastlane을 사용하여 버전 관리 시스템이 정상적으로 작동하는지 테스트합니다.
버전이 올바르게 증가하고 Git에 커밋이 진행되는지 확인하십시오. 결론 이 과정을 통해 Fastlane과 VCS를 통합하여 자동 배포 프로세스를 효율적으로 운영할 수 있습니다.
설정 후에는 모든 변경 사항이 자동으로 버전 관리되므로, 다양한 버전의 배포가 용이해집니다.
작성자:
박준희 [비회원]
| 작성일자: 1년 전
2025-04-15 23:40:58
조회수: 170 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 170 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.