네이버 로그인과 proguard

timothy jeong·2022년 3월 2일
0

Android 개발 기록

목록 보기
3/8

앱의 보안성을 조금이라도 더 높이기 위해 난독화를 하였다.

app 수준의 gradle 에서 다음과 같이 설정을 하고, proguard-android-optimize.txt 에 따라 기본적인 최적화와 난독화가 이뤄진다. 이때 추가적인 옵션은 proguard-rules.pro, proguard-debug.pro 등 참조한 파일을 생성한 후 작성해주면 된다.

    buildTypes {

        debug {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt')
            proguardFile 'proguard-rules.pro'
            proguardFile 'proguard-debug.pro'
        }

        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }

기존 앱이 네이버 로그인, 카카오 로그인을 사용하고 있었는데, 난독화 후 빌드하니 네이버 로그인이 작동하지 않는 문제가 발생했다. 이는 네이버 로그인 관련 라이브러리의 class 들이 난독화 되면서 나타난 현상으로, 해당 클래스들을 낙독화 하지 않겠다고 선언해줘야 한다.

나는 debug 버전과 relase 버전 모두에 적용되는 proguard-rules.pro 파일에 아래의 옵션을 추가하였다.

# To avoid obfuscation of https request and response
-keep class com.example.apps.model.** { *; }

# To use naver login with proguard
-keep public class com.navercorp.nid.oauth.** {*;}

# To use naver login profile with proguard
-keep public class com.navercorp.nid.profile.data.** {*;}

첫 줄은 retrofit 을 이용하면서 사용되는 model 클래스들의 난독화를 막기 위해서
둘째 줄은 네이버 로그인 자체의 기능을 유지하기 위해서
셋째 줄은 네이버 로그인으로 토큰을 받은 후 유저 프로필 정보를 조회해야하는 경우에 난독화를 해제해야 한다.

profile
개발자

0개의 댓글