본문 바로가기

iOS

🚀 fastlane으로 TestFlight 배포 자동화하기! - 설치와 배포

 

 

CI/CD 개념을 살펴본 후 fastlane으로 프로젝트를 TestFlight에 자동으로!! 배포해 보았는데

설치부터 내가 헤쳐나간 난관..^^ 을 기록해 보려고 한당...

 

 

우선 fastlane은 앱 배포를 자동화해 주는 오픈소스 플랫폼인데,

스크린샷을 자동으로 찍어 준다거나, 베타 배포, 앱 스토어 배포, 코드 사이닝 등을 해 준다!

자세한 내용은 공식문서 참고

 

 

 

 

 

일단 설치부터 스따뜨!

 

 

 

먼저 Homebrew가 설치되어 있지 않다면 홈브루부터 설치한다!

나 진짜 fastlane 설치하느라 혼이 나가는 줄.... 

fastlane docs를 보면 설치 방법이 머 루비, 번들러, 홈브루, 시스템 루비 + 루비젬, .... 이것저것 많은데, 홈브루를 강력히 추천드립니다 ^^ 젬으로 해보려다가 넘모..넘모 힘들었다. 

 

 

 

Homebrew가 설치되어 있는지 확인하려면

brew -v

 

터미널에 위 명령어를 입력해 본다.

 

 

 

이런 식으로 나오면 이미 설치가 되어 있는 것

 

 

 

없다면 터미널에

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

 

위 명령어로 설치한다! Homebrew 홈페이지에 잘 나와있다..

 

 

 

홈브루가 설치되고 나면, 홈브루를 통해 fastlane을 설치할 수 있다!

brew install fastlane

 

 

 

 

 


마아아안약 gem install bundler를 했는데

you don't have write permissions for the /library/ruby/gems/2.6.0 directory.

이런 오류가 나온다면.. sudo로도 해결이 안된다면...

~/.zshrc를 열어서 

[[ -d ~/.rbenv  ]] && \
  export PATH=${HOME}/.rbenv/bin:${PATH} && \
  eval "$(rbenv init -)"

이걸 추가하고,

 

 

 

source ~/.zshrc

 

로 코드를 적용시킨 다음에 gem install bundler를 다시 시도해 보세요..!

이것 때문에 시간 깨나 날렸슴다.. 

 


 

 

 

 

 

다시 홈브루로 돌아와서... fastlane이 설치됐다면

프로젝트가 있는 경로로 가서

fastlane init

 

을 해 준다!

 

 

 

이런 식으로 나오면 성공!

TestFlight에 자동으로 베타 배포를 해 볼 것이기 때문에 2번을 선택해 준다

 

 

 

뭐가 막 나오다가

 

Apple ID 유저네임을 치라고 나오는데, 개발자 계정 애플 ID를 입력하면 된다 (이메일)

혹시 비밀번호를 입력하라고 나오면 비밀번호도 입력한다

 

 

 

로그인 성공 후에는 저 Bundle ID를 내 Apple Developer Portal에서 찾을 수 없다고 나온다!

https://developer.apple.com/account 에서 식별자 부분에 없다는 말이다

이것도 만들어 달라고 하면 fastlane이 다 만들어 준다..!

y 선택!

 

 

 

이제 앱 이름을 입력하라고 한다! 여기서의 App Name은 앱스토어 커넥트에 올라갈 앱 이름이 아니라,

식별자 Identifiers에서 name을 뭘로 할 건지임!

 

 

 

앱스토어 커넥트에 앱 없다고 올려 준다고 한다 당연히 y

 

 

 

또 앱 이름을 적으라고 하는데, 여기서의 App Name이 앱스토어 커넥트에 올라갈 앱 이름이다.

 

 

 

성공!!

 

 

 

 

앱스토어 커넥트에 앱도 올라가고

 

 

 

식별자 리스트에서도 볼 수 있당

엔터!

 

 

 

 

대충 무슨 말이냐면..

 

fastlane은 Fastfile이라는 파일로 자동화 설정값들을 저장하고,

우리는 그 파일을 열어서 다른 lane들을 볼 수가 있고

각각 목적에 맞게 스크린샷 자동 찍기나 코드 사이닝, 앱 업뎃 등등! 다른 태스크들로 자동화를 할 수 있다는 말!

 

ㅇㅔㄴ터!

 

 

 

Fastfile 커스터마이징 방법도 알려 준다.. 저 액션들 보면 음층 많다

다음 편에는 슬랙으로 메시지 받아 볼 예정~

엔터!

 

 

 

스크린샷 찍기, 베타 테스팅 배포, 앱스토어 릴리즈, 코드 사이닝 등등 방법을 링크로 친절히 알려주고,,,

새로운 fastlane 셋업을 실행하려면 fastlane beta를 하라고까지 알려준다 그대로 해 보쟝

 

 

 

엄청 뭐가 많이 올라가고,, 각 시뮬레이터도 한 번씩 뭔가 해 보는 것 같고...

중간에 서머리도 함 나오고..

 

 

 

위처럼 실패했다,,

앱 아이콘이 없는 경우도 위처럼 에러가 나기 때문에 앱 아이콘을 넣고 fastlane beta 재시도

 

 

 

똑같이 에러가 나고

 

error: exportArchive: No profiles for 'com.sani.FastlaneTest8' were found

Error Domain=IDEProfileLocatorErrorDomain Code=1 "No profiles for 'com.sani.FastlaneTest8' were found" UserInfo={IDEDistributionIssueSeverity=3, NSLocalizedDescription=No profiles for 'com.sani.FastlaneTest8' were found, NSLocalizedRecoverySuggestion=Xcode couldn't find any iOS App Store provisioning profiles matching 'com.sani.FastlaneTest8'. Automatic signing is disabled and unable to generate a profile. To enable automatic signing, pass -allowProvisioningUpdates to xcodebuild.}

 

 

이런 에러 메시지가 뜬다면!

오토매틱 사이닝을 켜라는 거다,,

 

 

 

사진을 누르면 해당 공식문서로 이동합니다

위처럼 Fastfile에서 -allowProvisioningUpdates를 아규먼트로 넘긴다

 

 

 

이렇게 추가했다!

공식문서처럼 build_app() 메서드를 한 번 더 추가하면 빌드가 2 번 됨 주의,..!!

저장하고 다시 fastlane beta 시도

 

 

 

 

내부 테스터들에게 TestFlight 베타 배포 성공! 🚀

 

 

 

 

 

앱스토어 커넥트에서 TestFlight에 올라간 것도 확인할 수 있다 :)

 

 

 

 

 

아카이빙하고 업로드하고.. 테스트 배포나 앱 업데이트 하는 과정을 자동화해 주는 fastlane..!

사용법을 잘 익혀 두면 넘나 편하게 빌드 & 릴리즈할 수 있을 것 같다!!

 

다음번에는 태스크가 끝나면 슬랙으로 메시지를 받아 보겠습니다~~!

 

 

 

 

 

 

 

 

 

'iOS' 카테고리의 다른 글

CI/CD에 대해 알아보자!  (0) 2023.02.05
[iOS] Storyboard 사용해 보기 - Label, Button, Image View  (0) 2022.07.04