[Android] Proguard로 인한 앱 출시 후 오류 발생
최근 인턴 중인 곳에서 내가 오기전 완료했던 서브프로젝트에 문제가 생겼다.
코드 상에는 문제가 없고, 에뮬레이터&디버깅 할 때 아무 문제가 없는데 스토어에서 다운받은 앱은 서버 통신이 안되는 문제가 있었다.
처음에는 요구받았던 api가 너무 올드해서 호환이 안되는 것인가 하는 생각도 했고
(하나가 너무 오래된거라 구글스토어에서 빠꾸먹은게 있었음ㅎ)
버전 문제인가 싶어서 다 테스트 해보던 중 드디어,,, 드디어,,, 문제를 찾았다.
- emulator나 debug 상에는 문제가 발생하지 않으나 apk에서 api가 실행되지 않음. 앱무결성 및 공동인증서에서 발생하는 오류의 공통점이 서버로 데이터가 전송되는데 문제가 있음을 파악함.
- release모드에서 proguard의 난독화로 인한 retrofit 및 메소드, 모듈의 난독화로 서버와의 통신에 문제가 발생했던 것
앱 출시할때 release 버전은
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
debug {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
Proguard 즉 난독화가 켜져 있어서 다른 곳에서는 문제가 안보이고, 릴리즈 apk만 말썽이었던 것,,,,
앱 출시 경험이 없었던 나는 이거 찾는데 하루 정도 걸렸다.....그래도 뿌듯...
아무튼 해결방법은 gradle 파일에서 "proguard-rules.pro"에 예외처리를 해주는 것!
여기에 http, retrofit 기타 gradle dependency에 포함된 난독화가 되면 오류가 날 것 같은
부분을 다 검색해서 추가해줬다! 그리고 해결!!!
[참고 사이트]
https://black-jin0427.tistory.com/188
[Android, Proguard] 안드로이드 프로가드 설정하기 2
안녕하세요. 블랙진입니다. 안드로이드 프로가드 설정하기 두번 째 포스팅 입니다. 지난 포스팅이 궁금하신 분은 이곳을 클릭해 주세요 :) 서론 안드로이드 개발을 하다보면 다양한 라이브러
black-jin0427.tistory.com
https://imcreator.tistory.com/101
[안드로이드] 개발할 때는 잘 되다 Google Play 배포후 앱이 죽을 때 (Proguard & Retrofit2)
혹시 Proguard로 난독화하고 릴리즈한 APK를 실험해보았는지 의심해보자! 혹시 Retrofit을 쓰고 있다면? 어제 오후 Google Play Store에 1차 배포를 완료한 후 신나게 퇴근하고 집에 들어와 배포 버전을 다
imcreator.tistory.com