[React native]Xcode build 실패, match 액션으로 프로비저닝 오류 예방하기

Lee Yongin·2023년 11월 20일
0

리액트 네이티브

목록 보기
3/6
post-thumbnail

프로비저닝 오류

빌드할 때 프로비저닝 오류가 발생했다. 문득 xcode로 ios앱을 빌드할 때는 프로비저닝 오류가 자주 난다는 번거로움에 대해 들었던 게 생각났다.
마침 fastlane 적용 작업 중에 있었기 때문에 fastlane의 match액션으로 코드 사이닝 설정을 단순화하고 문제를 방지하면 좋을 것 같다.

fastlane이 이미 설정되어있다는 가정 하에 match를 적용하는 내용을 포스팅했습니다(fastlane설정은 여기 링크 추천)

기존의 방식

아래와 같이 하면 귀찮고, 인증서 만료 및 관리 문제가 있다.

  1. 인증서와 프로비저닝 프로파일을 암호화해 프로젝트 디렉토리에 포함시킨다.
  2. 가상환경에서 복호화한다.
  3. 수동으로 Xcode에 프로파일을 설치하고 구성한다.

fastlane의 match 액션

개발 팀 전체에서 하나의 코드사이닝 용 애플계정을 공유하여 코드 사이닝 설정을 단순화하고 문제를 방지하는 것이다. 팀의 공동 애플계정을 이용해 인증서와 프로파일 코드사이닝 용 레포에 자동으로 암호화하여 생성하고 관리해준다.

fastlane workflow순서

  1. 로컬에서 버전/빌드 번호를 변경하고 태그를 푸시하는 lane을 실행 🚘
  2. 앱 버전 태그가 푸시되면 워크플로의 이벤트 실행 🏷
  3. git 코드 체크아웃 ✅
  4. SSH key, ruby, fastlane 등의 설치 ⚙️
  5. keychain 초기화 🔑
  6. match를 실행하여 인증서 및 프로파일 불러오기 ✍🏼
  7. 빌드 및 내보내기 🏗
  8. 앱스토어 업로드 🎉
  9. 배포 결과 슬랙 노티 🚨

fastlane match 설정하기

인증서를 저장할 원격 저장소 생성하기

깃 레포지토리에 private으로 저장소를 만들어준다.

match 액션 설정하기

fastlane match init 명령어를 입력하면 아래처럼 나온다. 원격 저장소에 certificate와 provisioning file을 넣을 거니까 1번을 선택한다.

방금 만든 깃허브 레포지토리 url을 넣어주면 이후에 생성하는 파일이 저절로 담겨있을 것이다.

match 파일 수정하기

fastlane 폴더를 확인하면 Matchfile이 생성되어 있을 것이다.
여기서 type(), app_identifier(), username()을 프로젝트에 맞게 수정한다.

app_identifer()와 username()은 fastlane 폴더의 Appfile 폴더 상단을 보면 쉽게 확인할 수 있다. 디폴트 type()을 적어주는 것일 뿐이니까 일단은 development로 적으면 된다.
나중에 match액션을 쓸 때 type을 적을 수 있다. 그때는appstore,development,adhoc,enterprise 중 상황에 맞게 사용하면 된다.

원격 저장소에 인증서 생성하기

fastlane match appstore명령어를 실행한다.
중간에 이렇게 passphrase를 생성하는데 꼭 어디 적어놓고 기억해야 한다.

match 액션 적용하기

Fastfile의 TestFlight로 빌드하는 lane에 적용해보았다.

이제 앱이 build가 된다...

근데 testflight는 authorization 문제로 업로드 실패했다.야익스 글쓸거리 또 늘었네

참고자료

https://docs.fastlane.tools/actions/match/
https://velog.io/@parkgyurim/iOS-fastlane-match

profile
f1을 좋아하는...🏆 f1처럼 빠르고 정확한 걸 좋아하는 안드로이드 개발자

0개의 댓글