Firebase Crash Report 등록 후 Proguard Mapping 을 업로드 하기위한 방법은 아래 링크에 나와있다.
https://firebase.google.com/docs/crash/android
해당 내용에 대해 좀 더 자세한 설명을 달기위해 포스팅 작성함.
Gradle로 ProGuard 매핑 파일 업로드
build.gradle
파일에 규칙을 포함하여 Firebase 오류 보고 플러그인을 포함합니다. buildscript {
// ...
dependencies {
// ...
classpath 'com.google.firebase:firebase-plugins:1.0.4'
}
}
2. 앱 프로젝트의 Gradle 파일(일반적으로 app/build.gradle
)에 다음 줄을 추가하여 오류 보고 플러그인을 사용 설정합니다.
apply plugin: 'com.android.application'
// ADD THIS
apply plugin: 'com.google.firebase.firebase-crash'
android {
// ...
}
dependencies {
// ...
}
> 여기까진 쉽다..
3. 다음으로 서비스 계정 및 비공개 키를 만듭니다.
업로드를 인증하는 서비스 계정 키를 다운로드합니다. Firebase 콘솔에서 프로젝트를 선택한 다음 새 비공개 키 생성 생성을 클릭합니다.
> 새 비공개 키 생성하는 곳
> FirebaseConsole -> App선택 -> 좌측상단 OverView 옆의 Settings Icon -> 프로젝트 설정 -> 서비스계정 탭 -> 비정상 종료 보고 선택 -> 새 비공개 키 생성
4. 파일 경로를 $HOME/.gradle/gradle.properties
로 설정하여 FirebaseServiceAccountFilePath
라는 속성을 추가하거나 명령줄에서 -P
플래그를 사용하여 다른 경로를 지정합니다. 이후에 FirebaseServiceAccountFilePath
속성을 업데이트하여 다른 서비스 계정 파일로 작업을 실행할 수 있습니다.
명령줄에서 -P
플래그로 다음과 같이 속성을 설정하여 매핑 파일의 경로를 지정할 수도 있습니다.
./gradlew -PFirebaseServiceAccountFilePath=/usr/ServiceAccount/MyApp-a287fsd34.json ...
> -P 플래그를 통해 절대경로를 지정할 수 있으나, 일반적인 경로에 위치시키는 법으로 진행함.
> 3번에서 다운로드 받은 비공개 키는 로컬 프로젝트 -> .gradle -> gradle.properties (없으면 폴더 생성) -> 다운받은 키 넣기
> android studio에서 gradle.properties를 연 다음 아래 표시된 내용을 추가
FirebaseServiceAccountFilePath=/.gradle/gradle.properties/<download_file_name>.json |
> app 단위 build.gradle에 위에 선언한 주소를 지정
// apply plugin: 과 동일한 level에 지정한다.
setProperty("FirebaseServiceAccountFilePath", rootProject.rootDir.absolutePath + FirebaseServiceAccountFilePath) |
5. 프로젝트 디렉토리에서 gradlew
명령을 실행하여 이전 빌드의 매핑 파일을 업로드할 수 있습니다. 예를 들면 다음과 같습니다.
./gradlew :app:firebaseUploadReleaseProguardMapping
업로드 작업의 정확한 이름은 빌드 변형 이름에 따라 다르며 다음과 같은 패턴을 따릅니다.
firebaseUpload<VariantName>ProguardMapping
. 사용 가능한 업로드 작업 이름의 전체 목록을 보려면 다음gradlew
명령을 실행하세요../gradlew :app:tasks
> Proguard를 이용해 signed apk를 빌드하게 되면 아래의 경로
<App Directory> / <App Name> / build / outputs / mapping / <Flavors Name> / release / mapping.txt
가 생성됨을 확인할 수 있다.
> Android Studio 하단의 Terminal을 열어 ./gradlew 로 mapping 데이터를 업로드 하도록 하자.
> 가이드에서 설명한 대로 하되 :app 은 app 폴더명(default값이 app), :firebaseUploadReleaseProguardMapping 은 Flavors를 지정했다면 Release앞에 Flavors 명을 적어준다.
> 만약 app 폴더명을 변경(Abc)하였고, Flavors를 def, ghi를 사용한다면 명령어는 아래와 같다.
./gradlew :Abc:firebaseUploadDefReleaseProguardMapping |
./gradlew :Abc:firebaseUploadGhiReleaseProguardMapping |
> 성공 시 다음과 같은 메시지를 확인 할 수 있다.