오늘은 fastlane를 활용해서 배포 자동화를 통해 테스트플라이트 혹은 배포 시 수월하게 할 수 있는 툴을 사용해보고자 한다. 또한 협업하는 과정에서 인증서를 개별적으로 관리하게 되면 번거로울 뿐 만 아니라 많은 문제가 생겨 시간을 잡아먹을 수 있는데 fastlane의 match를 활용해서 하나의 인증서로 팀원들도 배포자동화를 할 수 있는 환경을 한번 세팅해보자!
fastlane 설치하기
먼저 fastlane를 설치하기 위해 홈브루를 활용해 간편하게 설치한다
brew install fastlane
터미널에 넣어주면 간편하게 설치가 완료된다.
그 다음 프로젝트 루트로 이동해서 해당 하는 프로젝트에 fastlane를 초기화 해준다
현재 fastlane를 적용할 프로젝트로 이동 후 → fastlane 초기화
fastlane init
이렇게 초기화를 해주면 사진과 같이 fastlane 파일 내 Appfile , Fastfile이 생성되어 있는 것을 확인할 수 있다.
정상적으로 확인된다면 설치가 완료됐다는 것!!
Appfile , Fastfile
그럼 이 두가지는 어떤걸 의미할까!?
먼저 Appfile은 앱 및 게정 관련 기본 정보를 저장하는 글로벌 설정 파일이다.
Apple Developer 계정, 팀ID, 기본 번들 아이덴티파이어 등 공통 설정을 관리하는 역할을 담당한다.
다음 Fastfile은 실제 자동화 워크플로우(배포, 빌드, 테스트 등)를 코드로 작성하는 파일이다.
여러 lane를 정의하여 원하는 작업들을 순차적으로 실행하도록 구성한다.
이 두가지 파일을 사용하므로써 Fastlane는 앱 배포와 관련된 반복 작업을 효율적으로 자동화 할 수 있고 공통설정은 Appfile에서 관리하고 구체적인 작업은 Fastfile에서 정의하는 구조를 갖게 된다!
fastlane match
그럼 이제 인증서를 공유할 수 있는 match를 적용하는 방법에 대해서 알아보자!
먼저 이전과 동일하게 match를 초기화 해준 뒤
fastlane match init
이렇게 매치를 초기화 해주면 git 주소를 넣으라고 나오게 되는데 이 시점에서 이렇게 private의 repo를 하나 만들고 그 레포의 주소를 넣어주면 된다!
이렇게 주소를 넣어주면 아까 Appfile, Fastfile이 있던곳에 Matchfile이 생성되게 된다!
여기에
git_url("<https://github.com/YourTeam/YourCertificateRepo.git>")
storage_mode("git")
# 인증서 타입 (배포용은 "appstore", 개발용은 "development")
type("appstore") # 또는 type("development")
# 앱 번들 아이디 및 Apple Developer 계정
app_identifier("com.yourcompany.yourapp")
username("your_developer@yourcompany.com")
배포용 혹은 개발용을 나눠 앱 번들 아이디와 애플 계정을 넣어 관리한다!
그 다음 이렇게 진행된 내용을 바탕으로 프로비저닝 프로파일을 생성해야한다
프로비저닝 프로파일 생성
개발용 인증서 생성
fastlane match development
배포용 인증서 생성
fastlane match appstore
이렇게 각각 용도에 맞게 넣어주면 Passphrase를 입력하라고 나오는데 이 입력한 비번은 잊어버리면 안되니 따로 적어두고 나중에 팀원에게 공유해야할때 이 비밀번호를 공유해주면 된다!
그런 다음 팀원이 이 인증서를 사용하고자 한다면
fastlane match development --readonly
fastlane match appstore --readonly
각각 용도에 맞는 인증서를 받아 사용하게 되면 여러개의 인증서를 사용하지 않고 하나의 인증서로 관리하기 수월해진다 🙂 배포 자동화 과정 너무 신기하고 재밌다
아직 fastlane의 많은 기능에 대해 자세하게 알 순 없지만 환경 세팅을 마무리 해보면서 이 자동화 과정에 대해 너무 흥미로워 앞으로도 적용해서 쭉 사용해 보려고한다 🙂
오늘은 적용하는 기초만 다뤘다고 생각하고 다음에 더 자세한 기능에 대해서 알아보자!!! 오늘은 여기까지!
'◽️ Programming > T I L' 카테고리의 다른 글
클린아키텍처를 사용해 로그인 정보 저장 로직 구성 및 데이터 전달 (0) | 2024.12.05 |
---|---|
Let’s Swift 2024 방문 후기 🙂 (2) | 2024.11.26 |
Custom Calendar 구현과 ViewBuilder에 대해서 (2) | 2024.11.13 |
Device 잠금 상태 추적해 백그라운드 데이터 업로드 하기 (0) | 2024.11.07 |
Firebase RealtimeDatabase 내 데이터 저장하기 (0) | 2024.10.25 |