안드로이드 릴리즈 모드에서의 디버깅 방법에 대해

less than 1 minute read


안드로이드 릴리즈 모드에서의 디버깅 방법에 대해


개요

릴리즈 모드에서 인수테스트를 하던 도중, 디버그 모드에서는 발생하지 않던 런타임에러가 발생하는 것을 확인하였다.

하지만 릴리즈 빌드에서는 디버그 모드일때 처럼 디버거를 붙일 수 없다. 어떻게 하면 릴리즈 모드에서도 디버깅이 가능할까?


해결

토스트를 띄운다거나 로그를 찍는다거나 디바이스 모니터에서 로그를 확인한다거나 하는 방법이 있겠지만 나는 디버거를 붙여보고 싶었다.

// Manifest 파일에서.
<application
        tools:ignore=“HardcodedDebugMode”
        android:debuggable=“true”
// build.gradle(app)
buildTypes {
        release {
            debuggable true
        }
}

를 해주면 디버거를 붙일 수 있게되고 브레이크 포인트를 찍어서 디버깅을 할 수 있게 된다. 하지만 브레이크 포인트를 찍은 모든 부분에 걸리는 건 아니었다. 액티비티 단 정도는 걸리는걸 확인했으나 그 바로 아래 프래그먼트나 싱글턴 오브젝트에는 걸리지 않았다.

여하튼 이걸로 문제해결.


p.s. 디버깅 다 하고 위에서 어트리뷰트들 추가했던거 다시 다 반드시 원복 해야한다. 특히 매니페스트에 추가한것은 저대로 그냥 올리면 스토어에서 받지도 않는다.