QA / release모드 변경
2023. 5. 3. 16:58ㆍ개발/최적화
원인
- firebase crashlytics에서 qa 버전, release 버전이 혼용되어 사용중임…
- 보기 불편..
- qa만 따로 모아서 보고싶음
해결 방안
- firebase 콘솔에서 앱 추가해줌
- 패키지명 설정 (나중에 빌드시에 이걸로 되는거 감안해서 크게 다르지 않은걸로 설정)
- service-json받음 -> 나는 원래 파일이 .app내에 있어서 거기 위치시켜줌
- .env 업데이트 (패키지명 변경으로 앱 아이디도 변경됨)
RELEASE_APP_ID = "릴리즈앱의 아이디(in fb project)"
QA_APP_ID = "QA앱의 아이디(in fb project)"
FIREBASE_TOKEN = "FB토큰"
GOOGLE_DRIVE_FOLDER_ID = "업로드할 구글 드라이브 폴더의 id"
SIGNING_KEY_ALIAS = "KEY_ALIAS"
SIGNING_KEY_PASSWORD = "KEY_PASSWORD"
SIGNING_STORE_PASSWORD = "STORE_PASSWORD"
SIGNING_STORE_FILE_PATH = "D:/파일경로"
WEBHOOK_URL = "슬랙 알림용 webhook url"
5. fastfile 업데이트
# This file contains the fastlane.tools configuration
# You can find the documentation at <https://docs.fastlane.tools>
#
# For a list of all available actions, check out
#
# <https://docs.fastlane.tools/actions>
#
# For a list of all available plugins, check out
#
# <https://docs.fastlane.tools/plugins/available-plugins>
#
# Uncomment the line if you want fastlane to automatically update itself
# update_fastlane
default_platform(:android)
platform :android do
desc "Lane for distribution"
lane :qa do
gradle(task: 'clean')
gradle(
task: "assemble",
build_type: "qa",
properties: {
"android.injected.signing.store.file" => ENV['SIGNING_STORE_FILE_PATH'],
"android.injected.signing.store.password" => ENV['SIGNING_STORE_PASSWORD'],
"android.injected.signing.key.alias" => ENV['SIGNING_KEY_ALIAS'],
"android.injected.signing.key.password" => ENV['SIGNING_KEY_PASSWORD'],
}
)
firebase_app_distribution(
app: ENV['APP_ID_QA'],
testers: "테스터메일",
firebase_cli_token: ENV['FIREBASE_TOKEN'],
release_notes: "- ver.4_QA",
debug: true,
)
beta()
send_slack_message(msg: "🚀 Successfully distributed a new beta build ✨")
end
lane :send_slack_message do |options|
slack(
message: options[:msg],
slack_url: ENV['WEBHOOK_URL'],
)
end
desc "release"
lane :release do
gradle(task: 'clean')
gradle(
task: "assemble",
build_type: "release",
properties: {
"android.injected.signing.store.file" => ENV['SIGNING_STORE_FILE_PATH'],
"android.injected.signing.store.password" => ENV['SIGNING_STORE_PASSWORD'],
"android.injected.signing.key.alias" => ENV['SIGNING_KEY_ALIAS'],
"android.injected.signing.key.password" => ENV['SIGNING_KEY_PASSWORD'],
}
)
send_slack_message(msg: "🚀 Successfully made a new release version ✨")
end
desc "Upload file to google drive"
private_lane :upload_drive do |options|
file_path = lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH]
upload_to_google_drive(
drive_keyfile: './드라이브 키파일.json',
service_account: true,
folder_id: ENV['GOOGLE_DRIVE_FOLDER_ID'],
upload_files: [''+file_path+''])
end
lane :beta do
upload_drive()
#used to get the url of the uploaded file
file_upload_path=lane_context[SharedValues::GDRIVE_UPLOADED_FILE_URLS][0]
sh "echo Link to apk :" + file_upload_path
# sh "your_script.sh"
# You can also use other beta testing services here
end
end
→ 보면 알겠지만 qa는 app tester배포, 드라이브 업로드, 슬랙 알림 세 개 같이 함
→ release모드는 release파일 생성, 슬랙 알림만 ( 기획팀에서 qa시에 준 파일로 그냥 스마트탭에 배포하는 경우가 있음 )
6. gradle file build variation 설정
buildTypes {
debug {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
release {
debuggable false
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
qa {
applicationIdSuffix ".qa"
debuggable false
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
}
'개발 > 최적화' 카테고리의 다른 글
Commit Convention (0) | 2023.07.25 |
---|---|
뷰모델 중복 이슈 해결 (0) | 2023.05.03 |
Delegate Pattern (0) | 2023.05.03 |
안드로이드 아키텍쳐 (0) | 2023.05.03 |
firebase app distribution + fastlane을 이용한 앱 배포 자동화(window)(2) - 배포 완료시 슬랙 알람 추가하기 (2) | 2022.10.07 |