이 글에서는 실제 연동까지 실습을 진행하지는 않습니다.
단순히 진행에 필요한 기본 배경지식만을 설명합니다.
https://fastlane.tools/
앱 빌드 및 배포에 필요한 기능들을 스크립트로 작성해놓고, 명령어 한줄로 실행할 수 있다.
그렇기 때문에 fastlane 명령어로 빌드 및 배포가 가능하게 프로젝트 환경을 구성해놓은 뒤, 로컬에서 명령어를 실행하면 로컬에서 손쉽게 배포가 가능하고 CircleCI / Github Actions 머신에서 fastlane 명령어를 실행하면 로컬 리소스를 사용하지 않고 원격 머신을 이용한 배포가 가능해진다.
여기에 Trigger(PR merge, commit) 와 fastlane 명령어를 함께 엮으면 배포 자동화도 가능해진다.
기본적인 기능 이외에도, 유저들이 만든 플러그인들이 많고 이또한 동일한 방식으로 실행 가능하다.
https://docs.fastlane.tools/plugins/available-plugins/
(Fastlane 은 ruby 로 만들어졌고, gem(npm 같은것) 을 이용해서 플러그인등을 설치해야함.)
Fastlane script
lane :beta do increment_build_number build_app upload_to_testflight end lane :appstore do capture_screenshots build_app upload_to_app_store slack end
- increment_build_number - 빌드 넘버를 증가시켜줌
- build_app - 앱을 빌드하는 명령어를 실행, 파라메터로 configuration(debug, release 모드) 및 다양한 빌드 옵션 설정 가능
- upload_to_testflight - 테스트 플라이트에 업로드
- capture_screenshots - 앱의 스크린샷을 캡쳐
- upload_to_app_store - 앱스토어에 업로드
- slack - 슬랙에 메세지 전송
스크립트는 Fastfile 에 작성을 해야하고 각 android/ios 폴더 하위에 작성하면 된다. (fastlane init
명령어로 초기 설정이 가능)
작성한 스크립트들의 묶음은 lane 이라고 부르고, CLI 에서 lane 이름을 명령어로 실행할 수 있다.
위에서 작성한 lane :appstore 는 fastlane appstore
와 같이 실행 가능
전처리 (version, build_number, badge)
빌드 & 사이닝 (signing key & provisioning profile)
배포 (firebase distribution, testflight, playstore alpha/beta, playstore/appstore)
후처리 (slack)