Leo
fastlane match 본문
iOS 앱 개발 및 배포를 위해서는 Certificate 와 Provisioning profile 이 필요한데, 지금까지 각자 만들어서 사용하고 있었다.
그러다보니 인증서 갯수는 늘어나고 누가 어떤 걸 사용하고 있는지 관리가 전혀 되지 않았다. fastlane만 적용하고 match는 적용하지 않았는데, Github Action 적용 과정에서 match 도입은 필수라는 걸 느끼고 적용한 내용을 적어보려 한다.
Match 설정
1. Private Repository 생성
iOS 인증 관련 파일들을 보관할 private repository를 만든다.
2. match 초기화
fastlane match init
git repo를 이용해 match 인증서를 가져올 것이기 때문에 1번 선택.
[✔] 🚀
[12:21:30]: fastlane match supports multiple storage modes, please select the one you want to use:
1. git
2. google_cloud
3. s3
fastlane 폴더 안에 Matchfile 생성 확인 및 수정
git_url("https://github.com/plandarcode/vuka-app-certificates.git")
storage_mode("git")
type("appstore")
app_identifier(["your_app_identifier"])
username("your_email")
3. match 인증서 생성
기존 인증서 삭제
// 개발용 인증서 제거
fastlane match nuke development
// 배포용 인증서 제거
fastlane match nuke distribution
private repository에 인증서 생성
// 배포용 인증서 생성
fastlane match appstore
// 개발용 인증서 생성
fastlane match distribution
인증서가 apple developer에 등록된 것을 확인 할 수 있다.
인증서 생성 시, passphrase 입력하라는 내용이 나오면 입력 후 해당 값을 잘 기억해둬야 한다.
[✔] 🚀
[12:26:45]: Get started using a Gemfile for fastlane https://docs.fastlane.tools/getting-started/ios/setup/#use-a-gemfile
[12:26:47]: Successfully loaded '/Users/kwondohyun/Documents/GitHub/FastlaneCert/Matchfile' 📄
+--------------+----------------------------------------------+
| Detected Values from './Matchfile' |
+--------------+----------------------------------------------+
| git_url | https://github.com/plandarcode/vuka-app-cert |
| storage_mode | git |
| type | appstore |
+--------------+----------------------------------------------+
4. fastfile match 적용
fastlane build 과정에 match 설정을 해두면 사용자와 환경에 관계없이 동일한 환경에서 배포를 진행 할 수 있다. (ex. github actions)
// fastfile match 인증서
match(
type: "appstore",
app_identifier: ENV['APP_IDENTIFIER'],
git_url: ENV['GIT_URL'],
force_for_new_devices: true,
readonly: true,
keychain_name: ENV['KEYCHAIN_NAME'],
keychain_password: ENV['KEYCHAIN_PASSWORD']
)
Match 인증서 가져오기 (팀원 공유)
1. Github certificates Repository에 팀원 초대
2. Fastlane 설치
brew install fastlane
3. fastlane match 실행
// --readonly를 붙이지 않으면 새로운 인증서를 다시 생성하기 때문에 이미 생성이 됐다면 read only로 불러와야 한다.
fastlane match appstore --readonly
fastlane match development --readonly
- fastlane > Matchfile 생성 확인
- ios > fastlane 폴더 생성 확인
- android > fastlane 폴더 생성 확인
error 발생 시,
1. clone repository
2. username, passphrase 입력
- username: apple 계정 이메일
- password: 깃헙에서 발급받은 본인 PAT(Personal Access Token)
4. Xcode 인증서 확인
- Automatically manage signing 체크 해제
- Eligible, Ineligeble에 match 인증서가 잘 들어왔는지 확인 후 적용
*Xcode Match AppStore 인증서 빌드 오류
1. 빌드 설정에서 Signing 설정 확인:
Xcode → Runner → Build Settings:
- Code Signing Identity:
Development: iOS Developer.
Distribution: iOS Distribution.
Provisioning Profile:
- 생성한 프로파일을 선택.
2. 빌드 대상 확인:
- Scheme이 올바른 빌드 대상(Development/Ad Hoc/Release)으로 설정되어 있는지 확인.
'개발 정리 > CI·CD' 카테고리의 다른 글
[Android] github actions 배포 자동화 (0) | 2025.01.13 |
---|---|
[iOS] github actions 배포 자동화 (0) | 2025.01.13 |