거의 알고리즘 일기장

fastlane ci/cd 환경상에서 실행시 주의할 사항 (react native) 본문

react-native

fastlane ci/cd 환경상에서 실행시 주의할 사항 (react native)

건우권 2023. 11. 28. 23:08

이번에

1. fastlane을 이용해서 react native 앱의 빌드와 배포를 자동화하고

2. github action workflow를 이용해서 특정 trigger시 1번의 내용을 진행하도록

하는 업무를 맡아서 진행했다.

 

fastlane을 이용해서 ci/cd pipeline 구축 자체는 자료와 예제가 많으니 어떻게 진행하는지는 생략하고 대략적으로 fastlane이 하는것이 무엇이고 주의해야 할점 몇가지만 남겨놓으려고 한다. 나를 위해?..ㅋㅋ


fastlane이란?

유튜브의 리액트네이티브 커뮤니티 발표자료 사진임

 

위의 그림처럼 ios, android app 배포시에는 단계가 있다.

별거 아닌 것들이지만 배포시마다 저 과정들을 해주는건 지겨우므로 일련의 과정들의 자동화를 도와주는 도구라고 생각하면 된다. 그리고 fastlane을 구축하고 나면 ci/cd pipleline 구축시에는 easy 해진다.

fastlane ci/cd 환경상에서 실행시 주의할 사항

fastlane에는 여러 action이 있고 그건 각각 앱의 빌드, 배포 step에 대응한다. 이게 정확히 뭐가 뭐에 대응하는지는 문서 찾아보는게 빠르고 나는 바로 본론인 ci/cd 환경에서 주의하면 좋을것 같은 사항만 적어둔다.

 

1. ios의 code signing 과정에 대응되는 match action을 실행시, certificate, provisioning profile의 sync를 맞춰주게 된다. 이때 ci/cd 환경상에서 따로 keychain을 create하고 match 실행시 keychain name, password를 명시해야한다.
(당연한 이야기인데 local에서 스무스하게 되니까 잊기 쉽다.)

 

2. app store connect api를 쓰는 fastlane 동작시 create jwt step에서 reject될때, ci/cd 상의 시간이 apple 시간과 달라 apple 입장에서는 미래시간으로 token을 요청해서 일 수 있다. + duration이 20분 이상으로 요청시에도 reject 사유다. 
https://developer.apple.com/documentation/appstoreconnectapi/generating_tokens_for_api_requests

 

Generating Tokens for API Requests | Apple Developer Documentation

Create JSON Web Tokens signed with your private key to authorize API requests.

developer.apple.com

3. node module, pod 같은 dependency를 다운받은 폴더들은 cache를 적극적으로 사용하자. 


오랜만에 쓰는 글이다!

이직하고 정신없는 와중에 다른 분야에 관심이 빠져 글쓸 시간이 없었다. ㅎㅎ 

 

반응형
Comments