거의 알고리즘 일기장
fastlane ci/cd 환경상에서 실행시 주의할 사항 (react native) 본문
이번에
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
3. node module, pod 같은 dependency를 다운받은 폴더들은 cache를 적극적으로 사용하자.
오랜만에 쓰는 글이다!
이직하고 정신없는 와중에 다른 분야에 관심이 빠져 글쓸 시간이 없었다. ㅎㅎ
'react-native' 카테고리의 다른 글
react native screen에서 발견한 재미있는 부분 (react native의 native component에서 ui view controller 사용하는 테크닉) (0) | 2024.05.19 |
---|---|
RCTView, RCTText를 직접적으로 사용하면 더 빠르다? (1) | 2024.05.19 |
Monorepo 환경에 react native 추가하기(with turborepo) (0) | 2023.09.20 |
react native에서 android target sdk를 33이상으로 올릴경우 주의할점 (권한 정책 변경으로 인한 문제 해결) (2) | 2023.09.06 |
React Native를 이용한 사이드 프로젝트 만들기 2 - 1. 새로운 프로젝트를 기획하다! (0) | 2023.08.14 |