본문 바로가기
이것 저것 프로그래밍/안드로이드 오류 노트

파이어베이스 proguard 사용시 주의사항 정리

by 장✤ 2020. 8. 18.

오늘은 파이어베이스를 연결한 안드로이드 프로젝트에 proguard를 설정했을 경우에 주의사항에 대해서 알아보겠습니다. 먼저 Proguard에 대해서 간단하게 언급해보겠습니다. 어플을 만들고 출시하려면 apk를 만들어서 구글 마켓에 업로드하게 됩니다. 이때 별도에 보안 작업을 거치지 않고 마켓에 출시할 경우 열심히 프로그래밍한 코드가 유출될 수 있다고 합니다.


파이베이스 proguard 주의사함 썸넬


그래서 어플을 추시하기 전에 개발자는 최소한에 보안작업으로 proguard를 설정해주는 편입니다. 어플을 만들때는 여러가지 라이브러리를 사용하게 되는데 특정 라이브러리를 사용하는 경우 proguard를 하게 되면 오류가 발생하게 된다고 합니다. 그래서 이 경우는 개발자가 따로 설정을 proguard에서 해당 라이브러리를 제외해야 어플을 정상 작동한다고 합니다.



파이어베이스 proguard 설정 및 출시 앱중단

파이어베이스 인증 혹은 데이터베이스 기능을 사용중인 어플에 별도에 작업없이 그대로 proguard를 설정했을 경우 출시한 앱이 비정상종료될 수 있습니다. 앱을 실행해도 앱이 중단될 수 있습니다. 디버깅, 즉 테스트할 때는 잘 작동했지만 출시하고 마켓에서 다운로드한 어플을 실행하면 생기는 오류입니다.


파이어베이스 사용 시 proguard 설정하는 방법

우선 proguard 설정을 간단하게 언급하겠습니다. 안드로이드 스튜디오에서 build.gradle 모듈 app에 들어갑니다.

파이베이스 proguard 주의사함1


빌드타입에 release에서 현재 minifyEnabled가 false로 되어 있는데 이를 true로 바꿔주면 출시할 때 proguard가 적용됩니다. proguard는 불필요한 코드들을 압축 및 축약해서 다른 사용자가 읽기 어렵게 하고, 앱 크기를 줄여주는 효과가 있습니다. 그러나 이 과정에서 파이어베이스 관련 코드 등도 압축되기 때문에 별도로 제외해주지 않으면 출시시에 앱이 정상적으로 작동도지 않는다고 합니다.


파이베이스 proguard 주의사함2


프로가드 룰은 "proguard-rules.pro"에서 코드를 추가해서 변경할 수 있습니다.



파이베이스 proguard 주의사함3


proguard-rules.pro를 전혀 손대지 않았다면 전부 #으로 주석처리 되어 있을 겁니다. 아래에 위와 같은 코드를 추가해줍니다. 파이어베이스 인증 및 리얼타임데이터베이스를 사용할 때 추가하는 코드입니다. -keep은 해당 기능은 프로가드에서 제외한다는 내용이며 생략한 부분은 자신의 앱패키지 네임을 추가하면 될겁니다.



파이어베이스 프로가드 사용시에 주의해야할 부분에 대해서 알아보았습니다. 파이어베이스 말고도 몇개에 예외적인 라이브러리에서 위와 비슷한 방식으로 프로가드 설정을 해야 출시할 때 앱이 정상작동하게 됩니다. 더 정보를 얻고 싶으신 분들을 안드로이드 프로가드 혹은 해당 라이브러리와 프로가드를 영어로 구글링해보는것을 추천합니다.

댓글


맥북에어 15인치 출시일과 사전예약 정보