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 |