Android(Java)
[Java] Debug 또는 Release 모드에서만 코드 실행되게 처리하기
삽질중
2024. 10. 8. 17:00
IOS의 경우 매크로를 이용해서 Debug 또는 Release 모드에서만 동작하게 분기할 수 있다.
override func viewDidLoad() {
super.viewDidLoad()
#if DEBUG
logView.isHidden = false
#else
logView.isHidden = true
#endif
}
안드로이드는 매크로가 없어서 찾아보니 방법은 있긴하다.
BuildConfig.java 파일에 상수로 저장되어 있는 값을 이용하면 된다.
public static final Boolean DEBUG_MODE = true; 고정값으로 박혀있어서 build.gradle 에서 Debug모드 일때와 Release 모드일때 값을 변경해 주면 된다.
[BuildConfig.java]
public final class BuildConfig {
public static final boolean DEBUG = Boolean.parseBoolean("true");
public static final String APPLICATION_ID = "kr.xxxx.xxxxxxxxxxx";
public static final String BUILD_TYPE = "debug";
public static final int VERSION_CODE = 215;
public static final String VERSION_NAME = "1.1.4";
// Field from build type: debug
public static final Boolean DEBUG_MODE = true; // <= 요걸 사용했다.
}
[build.gradle]
buildTypes {
debug {
buildConfigField "Boolean", "DEBUG_MODE", "true"
}
release {
buildConfigField "Boolean", "DEBUG_MODE", "false"
minifyEnabled false
}
}
소스상에서 if 문을 이용해서 구분하면 됨. 아래와 같이 하면 Debug 모드에서만 동작하게 된다.
if (BuildConfig.DEBUG_MODE) {
mDebugLayer.setVisibility(View.VISIBLE);
}