fastlane로 아래의 명령어만으로 Firebase DEV, RELEASE 배포 + SLACK 메시지 전송까지 하는 방법을 정리
fastlane distribute
( 2~3일동안 fastlane 만 팠다.. )
자세한 fastlane 설치 및 환경 설정은 생략함
- fastlane 설치 -> 프로젝트에서 init 하여 파일들 초기화 ( git init 같다고 보면 됨 )
사용할 플러그인
gem 'fastlane-plugin-firebase_app_distribution'
gem 'fastlane-plugin-android_versioning_kts'
프로젝트 모듈에 release_note 파일, .env파일 생성
구조를 정리하면
project
- app
- fastlane
- fastfile
- .env
- release_note
(이렇게 해야하는건 경로들을 잘찾음..)
Fastfile 액션
lane :distribute do |option|
gradle(task: "clean")
version = increment_version_name(
bump_type: option[:type],
version_name: option[:version],
app_project_dir: "./app"
)
firebaseDev()
firebaseRelease()
message(version)
end
- clean build
- 버전 업그레이드
- type 을 지정할수 있는데 type의 도메인은 [ major, minor, patch ] 1.0.0 에서 각각 대응됨
- 지정하지 않으면 patch ( 마지막 숫자만 카운팅됨 )
- minor 를 올리면 아래의 숫자들은 0으로 됨
- ex) fastlane distribute type:"minor"
- version 명을 직접 지정하려면 명시
- ex) fastlane distribute version:"1.3.4"
- type 을 지정할수 있는데 type의 도메인은 [ major, minor, patch ] 1.0.0 에서 각각 대응됨
- Dev 배포
- Release 배포
- 슬랙 메시지 전송
일단 해당 명령어로 dotenv 설치하고 ( .env파일에 환경변수 값들을 넣어놓기 위해 )
sudo gem install -n /usr/local/bin dotenv
Fastfile에 import
fastlane_require 'dotenv'
default_platform(:android)
platform :android do
...
end
.env 파일
slack_url=".."
firebase_refresh_token=".."
dev_app_id=".."
release_app_id=".."
rerebase_refresh_token은
fastlane run firebase_app_distribution_login
을 실행하여 refresh_token에 넣어놓기
dev_app_id는 firebase console 에서 AppId
slack_url은 해당 채널의 hook url 을 넣어주자.
def firebaseDev()
gradle(
task: "assembleDev",
build_type: "release",
)
firebase_app_distribution(
app: ENV['dev_app_id'],
firebase_cli_token: ENV['firebase_refresh_token'],
debug: true,
groups: "TESTER",
release_notes_file: "./release_note"
)
end
def message(version)
slack(
message: "안드로이드 배포 안내입니다.\nAPP Tester #{version} 업데이트 해주세요.",
slack_url: ENV['slack_url'],
payload:{
"" => "",
"수정사항" => File.open("../release_note").read
},
default_payloads:[],
)
end
이제 release_note.txt에 수정사항을 넣어놓고
slack 메시지와 firebase release_note 에 명시할 수 있게 된다.
release_note 경로 지정할때 firebase에선 ./ 로 하고 File.open 할때는 ../로 접근해야 정상동작한다 ( 이상 )
스토어 배포시의 방법
- Firebase Console 에서 서비스 계정 생성
- json 키 생성해서 프로젝트 모듈에 넣어둠
gradle(
task: "bundleProd",
build_type: "release"
)
upload_to_play_store(
track: "production",
skip_upload_metadata: true,
skip_upload_images: true,
skip_upload_screenshots: true,
skip_upload_apk: true,
json_key: "./dearmate.json",
)
'Android' 카테고리의 다른 글
FlowBinding 사용하여 코드 간소화 (0) | 2023.01.11 |
---|---|
QR코드 스캔 커스텀 ( + 플래시 ) (0) | 2023.01.04 |
코루틴 좋아요 동기화 처리 (0) | 2022.11.07 |
build.gradle에 정의한 manifestPlaceholders 값 주입 받기 (0) | 2022.11.05 |
카카오톡 채팅화면 키보드 옵션창 구현 (0) | 2022.10.09 |