공식 페이지 :
https://firebase.google.com/docs/app-distribution/ios/distribute-fastlane
1. fastlane에 플러그인 추가
fastlane add_plugin firebase_app_distribution
질문들 :
Should fastlane modify the Gemfile at path '/앱경로/ios/Gemfile' for you?
y 선택 후 Gemfile이 잘 만들어졌는지 확인.
2. github에 match 설정
* github에 정보를 저장해둘 repository를 만들어야 함. 당연히 private.
참고 url : https://docs.fastlane.tools/actions/match/
1. match 시작
*ios 폴더 내에서 명령어 입력
fastlane match init
질문 :
fastlane match supports multiple storage modes, please select the one you want to use:
1. git
2. google_cloud
3. s3
4. gitlab_secure_files
1번 git 선택
Please create a new, private git repository to store the certificates and profiles there
URL of the Git Repo:
만들어둔 github repository url을 입력
2. fastlane/Matchfile에 app_identifier, username의 주석을 풀고 앱에 맞게 설정.
# app_identifier(["tools.fastlane.app", "tools.fastlane.app2"])
# username("user@fastlane.tools") # Your Apple Developer Portal username
app_identifier는 Appfile에 있고 username은 apple id를 입력
3. adhoc 생성
*현재는 firebase app distribution을 사용한 베타 버전 배포이기 때문에 appstore 방식이 아닌 adhoc 방식을 사용할 예정
fastlane match adhoc
4. Fastfile 설정
fastlane/Fastfile로 이동
default_platform(:ios)
$slack_url = "아까 복사해둔 webhook url"
$package_name = "앱 패키지 명"
platform :ios do
desc "Submit a Development Build to Firebase App Distribution"
lane :dist do
begin
$provisioningProfiles = "match AdHoc " + $package_name
match(
type: "adhoc",
app_identifier: $package_name,
)
gym(
workspace: "Runner.xcworkspace",
export_options: {
method: "ad-hoc",
xcargs: "-allowProvisioningUpdates",
provisioningProfiles: {
$package_name => $provisioningProfiles
}
},
)
firebase_app_distribution(
app: "firebase app id",
firebase_cli_token: "firebase cli token",
release_notes: "ios 앱 테스트 배포",
groups: "firebase app distribution에서 설정해둔 group 명",
)
build_success("성공했을 때 메시지", "firebase app distribution 링크 url")
rescue => exception
on_error(exception)
end
end
end
def build_success(message, link = "")
slack(
message: message,
success: true, # Optional, defaults to true.
channel: "배포 알림 슬랙 채널 이름",
slack_url: $slack_url,
attachment_properties: {
fields: [{}]
},
payload: { # Optional, lets you specify any number of your own Slack attachments.
"빌드 날짜" => Time.new.to_s,
"초대 링크" => link,
},
username: "슬랙에 전달될 때의 유저명"
)
end
def on_error(exception)
slack(
message: "실패 메시지",
success: false,
channel: "배포 알림 슬랙 채널 이름",
slack_url: $slack_url,
attachment_properties: {
fields: [{
title: "Error message",
value: exception.to_s,
short: false
}]
},
payload: { # Optional, lets you specify any number of your own Slack attachments.
"빌드 날짜" => Time.new.to_s,
},
username: "슬랙에 전달될 때의 유저명"
)
end
firebase cli token 구하는 방법 :
1. firebase cli 설치
curl -sL https://firebase.tools | bash
2. 로그인
firebase login
3. 로그인 확인
firebase projects:list
4. 토큰 확인
firebase login:ci
로그인을 진행하면 터미널에 토큰을 확인할 수 있다.
Success! Use this token to login on a CI server:
토----큰
토큰은 1//으로 시작한다. 1//부터 복사하여 넣어주어야 함.
참고 : https://firebase.google.com/docs/cli#sign-in-test-cli
설정 완료!
해당 명령어를 실행해주면 firebase app distribution으로 배포가 진행되며 완료 혹은 실패 시 설정해둔 slack으로 메시지가 전송된다.
fastlane dist
'Fastlane' 카테고리의 다른 글
Fastlane으로 Firebase App Distribution 배포 (3) - IOS Fastlane 설정 (0) | 2022.12.06 |
---|---|
Fastlane으로 Firebase App Distribution 배포 (2) - Firebase App Distribution 설정 (0) | 2022.12.06 |
Fastlane으로 Firebase App Distribution 배포 (1) - Slack Webhook 설정 (0) | 2022.12.06 |
Fastlane으로 Firebase App Distribution 배포 (0) | 2022.12.06 |
댓글