Fastlane 이란
fastlane is an open source platform aimed at simplifying Android and iOS development. fastlane lets you automate every aspect of your development and release workflow
- fastlane은 Android, iOS 배포를 간편하게 도와주기 위한 오픈소스 플랫폼이다.
- fastlane을 사용하면 아래 기능들을 사용할 수 있다.(아래 기능에 대한 자세한 내용은 공식 홈페이지 참고)
- Automate Screenshots
- Beta Deployment
- App Store Deployment
- Code Signing
AppStore에 앱을 배포하는 과정
- Xcode를 통해 앱을 만들고 Version, BuildNumber, Profile, Development team 등을 세팅한다.
- Archive를 만드는 행위 즉, release를 할 때에는 Distribution Type의 Certificate가 필요하다.
- Product -> Archive를 통해 앱 아카이브를 만든다(.ipa 파일)
- TestFlight에 앱을 배포한다.
- 배포된 앱에 대한 세팅을 진행한다.(앱 설명 및 스크린샷 등록 등)
- 앱을 심사 등록 한다.
Fastlane 도입시 배포되는 과정
- Fastlane 설정 파일을 수정하여, 세부 설정 세팅
- action 명령어를 사용사용.
- Version 자동 올림 처리, BuildNumber 자동 올림 처리
- AppStore TestFlight 배포까지 자동으로 진행
Fastlane 설치
- brew install fastlane
- fastlane 설치 과정 중 Permission deny Error가 발생하면 sudo 명령어를 넣어주면 된다.
- fastlane은 ruby를 사용하기 때문에 bundler를 설치해야한다.
Project에 fastlane 도입
- fastlane을 도입 할 프로젝트 폴더로 이동한다.
- fastlane init 명령어를 사용하여 fastlane을 적용한다.
- Apple 서버에 접근가능한 아이디 입력 및 패스워드 입력 창이 뜨게 된다.
fastlane init 완료 후 생성되는 파일
- Gemfile, Gemfile.lock
- fastlane 디렉토리
- AppFile
- Apple 계정 정보가 들어있는 파일이다.
- fastlane init 이후 로그인 과정에서 필요한 정보들을 이 파일에 저장해 놓고 사용한다.
- FastFile
- 생성이후 커스터 마이징을 해야하는 파일이다.
- fastlane lane들의 정보를 입력하고 fastlane lane_name으로 실행한다.
- 기본적으로 beta lane이 작성되어 있다.
- beta의 action들은 increment_build_number, build_app, upload_to_testflight 로 구성되어 있다.
- 빌드넘버를 1 올려주고 앱을 archive 한후 테스트 플라이트에 배포하는 행위가 이루어 진다.
- README.md
- fastlane lane 과정에서 에러나 예외 상황이 발생하면 해당 내용에 대한 정보가 입력되어 생성된다.
- report.xml
- action들과 time에 대한 정보가 xml 파일로 만들어진다.
Fastlane으로 TestFlight 배포
- fastlane init으로 적용을 완료하면 기본 구성으로 되어 있는 fastlane beta 를 실행한다.
fastlane beta
Authenticating with Apple Services
- 공식 홈페이지 DOC(https://docs.fastlane.tools/getting-started/ios/authentication/) 자세히 써있다.
- 저자의 경우에는 Application-specific passwords를 사용하여 인증을 진행했다.
- appleid.apple.com/account/manage
- 위 페이지에 들어가 암호를 만들고 잘 저장해 두고 해당 암호를 사용하여 인증을 한다.
- .env.default에 내용을 작성해 놓으면 해당 파일에 내용을 읽어서 배포를 시도한다
FASTLANE_USER=AppleID
FASTLANE_PASSWORD=ApplePassword
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD=GeneratedPasscodes