안드로이드 앱을 출시하기 전에는 대부분 프로가드를 적용합니다.
실컷 디버그로 앱을 개발하고 테스트 까지 마쳐서 문제가 없다고 생각하고 있는데 릴리즈로 앱을 만들어서 실행하면 프로가드 문제로 앱이 터지는 경우가 종종 있는 것 같습니다.
제 경우에는 프로가드에 있어서 여러 방법들을 써보았는데 프로가드에서 항상 제외할 디렉터리를 만들어서 그 안에 파일을 보관하는 편입니다.
하지만 외부 라이브러리를 사용하거나 실수로 저 디렉터리에 포함시키지 못했다면 난독화된 파일을 찾지 못해 앱이 실행되지 못하는 문제에 직면하게 됩니다.
특히 프로가드는 로그를 봐도 난독화된 로그가 나오기 때문에 원인 분석이 매우 어려운 편입니다.
예전에는 앱의 생명주기에 따라 생성하는 클래스를 모두 뒤져서 프로가드에 영향을 받는지 다 점검하는 식으로 확인하였지만, 프로젝트가 점점 커진다면 이 소요는 상상 이상으로 커지고 그에 따라 엄청난 고통을 선사하게 됩니다.
이런 경우를 대비해 proguard-rules.pro 파일 안에 아래 코드를 복사해둡니다.
# 프로가드로 죽을때 아래 라인 풀어서 확인 할 것
#-dontobfuscate
#-keepattributes SourceFile,LineNumberTable
그리고 프로가드 문제로 앱이 터지는 경우가 발생한다면 위 코드의 주석을 풀고 다시 빌드해서 로그를 확인합니다.
그럼 사람이 식별 가능한 수준의 로그를 받아 볼 수 있고 대응 시간도 현저히 줄어 들게 됩니다.
프로가드 부분은 초기에 한번 설정하고 보통 손을 대는 경우가 많지 않다보니 프로가드 문제가 생길때 마다 너무 힘이 드는것 같습니다.
앞으로는 이 방법을 이용해서 현명하게 잘 해결해보면 좋을 것 같습니다.