Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
관리 메뉴

Leo

fastlane match 본문

개발 정리/CI·CD

fastlane match

dohyxx 2025. 1. 6. 16:59

https://docs.fastlane.tools/actions/match

 

iOS 앱 개발 및 배포를 위해서는 Certificate  Provisioning profile 이 필요한데, 지금까지 각자 만들어서 사용하고 있었다.

그러다보니 인증서 갯수는 늘어나고 누가 어떤 걸 사용하고 있는지 관리가 전혀 되지 않았다. fastlane만 적용하고 match는 적용하지 않았는데, Github Action 적용 과정에서 match 도입은 필수라는 걸 느끼고 적용한 내용을 적어보려 한다.

https://codesigning.guide/

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에 등록된 것을 확인 할 수 있다.

https://developer.apple.com/

 

인증서 생성 시, 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                                     |
+--------------+----------------------------------------------+

match 인증서 생성 완료

 

 

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