지난번 포스팅 때 Firebase App Distribution 세팅 및 이용 방법에 대해 얘기했었다.
오늘은 Fastlane을 통해 수정된 앱을 App Distribution에 올리는 법에 대해 글을 적고자 한다.
Fastlane 설치
brew install fastlane
sudo get minstall fastlane
Fastlane Setting
프로젝트 디렉토리로 이동해 fastlane을 초기화 해준다.
fastlane init
세팅은 터미널에서 알려주는대로 자기 환경(앱)에 맞게 설정하시면 된다. (나중에 수정 가능)
세팅이 모두 끝났다면 플로그인 설치가 필요하다.
Plugin Install & Setting
Firebase App Distribution 플러그인 설치
fastlane add_plugin firebase_app_distribution
Firebase 인증
fastlane run firebase_app_distribution_login
위 어맨드를 입력하면 터미널에 url이 출력되는데 해당 url 접속 후 로그인을 완료하면 터미널에 refresh token이 찍혀있을 것 이다.
환경 변수에 refresh token 추가
export FIREBASE_TOKEN={refresh_token}
환경 변수 설정까지 마쳤다면 firebase app distribution 세팅은 마무리가 되었다.
이제 fastlane으로 배포 준비를 해보자.
Code Signing with Match
iOS 앱을 배포하기 위해서는 code signing이 필요한대 fastlane은 아주 간단한 code signing 방법을 제공해준다.
match 라는 방식이며 설정하는 법은 공식문서에 잘 설명되어 있다.
fastlane match
나는 git storage(bitbucket)을 사용중이었기 때문에 git으로 세팅해주었다.
세팅해주었으면 프로젝트의 Appfile, Matchfile을 수정해주자!
Appfile
app_identifier("com.test.fastlane") # The bundle identifier of your app
apple_id("kwtjdtn@gmail.com") # Your Apple Developer Portal username
itc_team_id("123456789") # App Store Connect Team ID
team_id("ABC123DEF") # Developer Portal Team ID
Matchfile
git_url("https://bitbucket.org/my_team/certificates") # 인증서가 있는 bitbucket(or github) 주소
storage_mode("git") # git을 사용했기에 git으로 세팅
type("development") # 테스트 앱 배포이기 때문에 development
app_identifier("com.test.fastlane") # bundle identifier
username("kwtjdtn@gmail.com") # Your Apple Developer Portal username
Matchfile까지 수정을 모두 완료했다면 마지막으로 Fastfile을 수정해보자.
Fastfile 수정
default_platform(:ios)
platform :ios do
desc "Push a new beta build to Firebase App Distribution"
lane :develop do
# register_devices( # 새 기기 등록시 devices에 udid 등록
# devices_file: "./devices.txt",
# )
match(type: "development") # 새 기기 등록시 force_for_new_devices: true 옵션 추가 (profiles에 device udid 등록)
build_app(
workspace: "my-project.xcworkspace",
scheme: "my-project",
export_method: "development"
)
firebase_app_distribution(
app: "firebase App Id",
debug: true,
groups: "qa" # tester 그룹
testers: "evan@gmail.com, kwtjdtn@gmail.com" # tester 메일
)
# 버전 가져오기
version = get_version_number(
xcodeproj: "my-project.xcodeproj",
target: "my-project"
)
build = get_build_number(xcodeproj: "my-project.xcodeproj")
# 배포 완료시 슬랙 알람 메시지 전송
slack(
message: "iOS, Firebase App Distribution 배포가 완료되었습니다.",
channel: "slack_channel",
slack_url: "slack_url",
payload: {
"Version": version + " (" + build + ")"
}
)
end
end
모든 세팅 및 파일 수정이 끝났다면
터미널에서 fastlane파일에서 만들어 줬던 lane 커맨드를 실행시켜 주자.
fastlane develop
명령어 실행이 완료된 후 firebase app distribution에 테스트 앱이 정상적으로 배포되고 slack으로 메시지가 왔다.
'iOS' 카테고리의 다른 글
[iOS / Swift] 테스트앱에서 deferred deep link 테스트하기 (Adjust) (0) | 2023.02.14 |
---|---|
[iOS / Swift] Fastlane으로 테스트 앱 자동 배포(CD) 구축하기 (1) (1) | 2023.02.10 |
[iOS / Swift] Firebase Remote Config로 강제/선택 업데이트 팝업 관리하기 (0) | 2023.02.03 |