Fastlane 자동 배포에서 아카이브 파일의 관리 방법은?
_____A1: 기본적으로 Fastlane은 아카이브 파일을 명시적으로 삭제하지 않으므로 빌드할 때마다 아카이브가 지정된 경로에 쌓입니다. 쌓이는 아카이브 파일들을 주기적으로 정리하거나, Fastlane 스크립트 내에서 직접 삭제 명령을 추가해 관리할 수 있습니다.
Q2: Fastlane에서 아카이브 파일 경로를 별도로 지정하려면 어떻게 하나요?
A2: `gym` 액션의 `archive_path` 옵션을 사용해 아카이브 파일이 생성될 경로 및 이름을 지정할 수 있습니다. 예를 들어:
```ruby
gym(archive_path: "./builds/MyApp.xcarchive")
```
이렇게 하면 원하는 위치에 아카이브를 생성하여 관리하기 쉽습니다.
Q3: 아카이브 파일을 자동으로 삭제하거나 오래된 아카이브를 정리하는 방법이 있나요?
A3: Fastlane 내에서 `sh` 명령어를 사용해 스크립트로 오래된 아카이브를 삭제할 수 있습니다. 예:
```ruby
sh("find ./builds -name '*.xcarchive' -mtime +7 -exec rm -rf {} +")
```
이 코드는 `./builds` 폴더 내 7일 이상된 아카이브를 삭제합니다.
Q4: 빌드 아카이브를 저장하는 폴더 관리를 어떻게 하면 좋나요?
```ruby
archive_path = "./archives/ {Time.now.strftime('%Y-%m-%d')}/MyApp.xcarchive"
gym(archive_path: archive_path)
```
이런 형식으로 자동으로 날짜별 폴더에 저장하면 관리가 편리합니다.
Q5: Fastlane으로 아카이브가 생성되는 위치는 기본적으로 어디인가요?
A5: `gym` 기본 동작 시 아카이브는 `~/Library/Developer/Xcode/Archives/` 내에 날짜별 폴더로 생성됩니다. 따라서 Xcode 아카이브 관리자에서 쉽게 접근할 수 있으나, 직접 접근하거나 백업이 필요하면 별도 경로 지정이 권장됩니다.
Q6: 아카이브 파일 용량이 커서 저장 공간이 걱정되는데, 효과적인 관리 팁이 있나요?
A6: 아카이브는 기본적으로 빌드 산출물이므로 모든 빌드를 보관할 필요가 없습니다. 의미 있는 릴리즈 버전만 아카이브를 보존하거나, 스크립트로 정기적으로 불필요한 아카이브를 삭제하여 저장 공간을 확보하는 것이 좋습니다.
Q7: Fastlane 자동화 중 아카이브 파일을 다른 저장소(예: 네트워크 드라이브, 클라우드)에 업로드하려면?
A7: 아카이브 생성 후 Fastlane 내 `sh` 명령어 또는 전용 플러그인을 사용해 FTP, AWS S3, Google Drive 등에 업로드할 수 있습니다. 예를 들어 AWS S3 업로드:
```ruby
sh("aws s3 cp ./builds/MyApp.xcarchive s3://mybucket/archives/")
```
이렇게 자동 업로드 절차를 추가해 아카이브 보관 정책을 수립할 수 있습니다.
아래는 아카이브 파일을 효과적으로 관리하기 위한 몇 가지 팁과 방법입니다.
1. 아카이브 위치 정의 아카이브 파일이 저장될 위치를 명확히 설정하는 것이 좋습니다.
Fastlane의 `gym`(앱을 빌드하는 도구)에서 `output_directory` 옵션을 사용하여 아카이브 파일의 저장 경로를 지정할 수 있습니다.
```ruby gym( output_directory: "./build", ... ) ```
2. 아카이브 파일 이름 지정 아카이브 파일에 날짜나 버전 정보를 포함하여 명확하게 식별할 수 있도록 합니다.
`output_name` 옵션을 사용하여 파일 이름을 지정할 수 있습니다.
```ruby gym( output_name: "MyApp- {Time.now.strftime("%Y%m%d%H%M")}.xcarchive", ... ) ```
3. 오래된 아카이브 정리 디스크 공간을 절약하기 위해 오래된 아카이브 파일을 정리하는 스크립트를 작성할 수 있습니다.
`FileUtils`를 사용하여 특정 날짜 이전의 아카이브 파일을 삭제할 수 있습니다.
```ruby require 'fileutils' output_directory = "./build" expiration_date = Time.now - 30 * 24 * 60 * 60 30일 이전 Dir.glob(" {output_directory}/*.xcarchive").each do |archive| if File.mtime(archive) < expiration_date FileUtils.rm_rf(archive) end end ```
4. 버전 관리 아카이브의 버전을 관리하는 것이 좋습니다.
Git과 같은 버전 관리 시스템을 활용하여 아카이브 파일에 대한 변경 이력을 관리합니다.
`commit`과 `tag`를 사용하여 특정 버전의 아카이브를 쉽게 추적할 수 있습니다.
5. CI/CD 파이프라인 통합 Jenkins, GitHub Actions 또는 GitLab CI와 같은 CI/CD 도구와 Fastlane을 통합하여 자동화된 빌드 및 배포 프로세스를 구현할 수 있습니다.
각 빌드 후 아카이브 파일을 특정 폴더에 저장하거나 배포할 수 있습니다.
6. 아카이브 검증 배포 전에 아카이브 파일의 유효성을 검증하는 단계를 추가할 수 있습니다.
이를 통해 빌드 실패나 문제가 발생할 경우 즉시 경고를 받을 수 있습니다.
7. 백업 및 아카이빙 아카이브를 배포한 후에는 중요한 아카이브 파일을 백업하는 것이 좋습니다.
AWS S3, Google Drive, 또는 Dropbox 등을 사용하여 아카이브 파일을 안전하게 저장할 수 있습니다.
이와 같은 방법들을 통해 Fastlane에서의 아카이브 파일 관리를 효율적으로 수행할 수 있습니다.
각 팀의 워크플로우와 요구 사항에 맞게 조정하여 활용하면 더 효과적일 것입니다.
작성자:
박주원 [비회원]
| 작성일자: 1년 전
2025-04-15 23:41:03
조회수: 166 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 166 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.