모바일 앱(안드로이드)

안드로이드 앱 만들기 : 코드 난독화, 축소의 폐해(?)

Billcorea 2022. 5. 16. 21:35
반응형

https://developer.android.com/studio/build/shrink-code.html?hl=ko#kts 

 

앱 축소, 난독화 및 최적화  |  Android 개발자  |  Android Developers

사용하지 않는 코드와 리소스를 삭제하기 위해 출시 빌드에서 코드를 축소하는 방법을 알아보세요.

developer.android.com

playstore에 앱을 등록하려고 하다 보면 코드 난독화를 통해 debugging을 대비 하라는 요구(?)를 받게 된다. 

그래서 한번 해 보기로 했다.  먼저 gradle 에 적용을 해 보았다.

 

buildTypes {
    debug {
        buildConfigField "Boolean", "DEBUG_MODE", "true"
    }
    release {
        buildConfigField "Boolean", "DEBUG_MODE", "false"
        minifyEnabled true
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
}

 

새로 빌드된 앱을 playstore 에 올리고 게시가 되기를 기다렸다가,  실행해 보았다. 개발할 때는 오류가 나지 않던 앱의 실행에 문제가 생긴다. 왜?  오류를 확인하기 위한 log을 찍어보고 찾아보고... 흠흠...  하다가 혹시나 하고 생성된 database을 삭제해 보았다.

 

그리고 실행된 후 새로 실행해서 보았더니, database 가 그림과 같이 생성이 되어 버렸다.  코딩할 때 생성했던 코드는 이런데도 말이다.

 

...

data class ChatRooms(
    var chatRooms:String = "",
    var chatTitle:String = "",
    var roomOwner:String = "",
    var chatNo:String = "",
    var locale:String = "",
    var badUser:String = "",
    var chatGuests:Int = 0,
    var secret:Boolean = false,
    var passwd:String = ""
)

 

코드 축소된 경우의 realtime database

이유는 무었일까 ??? 

 

생각을 하다 보니, 코드 난독화에서 발생하는 현상이었다. 

 

이제 이 난국(?)을 어떻게 해소할 것인가 ?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

난독화는 뭐래 ?

 

그 방법은 다음과 같이 설명이 되어 있다.  

유지할 코드 설정

 

이제 실체를 확인해 보아야겠다.   결과는 다음에...

반응형