본문 바로가기
Flutter/Flutter FAQ

flutter 플러터 애플리케이션이 디버그 모드에서 실행 중인지 확인하는 방법은 무엇인가요?, How can I check if a Flutter application is running in debug?

by 베타코드 2023. 5. 9.
반응형

질문


Flutter 앱이 디버그 모드 일 때 코드를 실행하는 방법을 찾고 있습니다. Flutter에서 가능한가요? 문서 어디에서도 찾을 수 없습니다.

다음과 같은 것

If(app.inDebugMode) {
   print("Print only in debug mode");
}

Flutter 애플리케이션이 디버그 모드 또는 릴리스 모드에서 실행 중인지 확인하는 방법은 무엇인가요?


답변


나중 버전에서는 kDebugMode를 사용할 수 있습니다:

if (kDebugMode)
  doSomething();

어설션(asserts)은 수동으로 "디버그 모드" 변수를 만들 수 있지만, 그것을 피해야합니다.

대신, package:flutter/foundation.dart에서 상수 kReleaseMode를 사용하십시오.


차이점은 모두 트리 쉐이킹(tree shaking)과 관련이 있습니다.

트리 쉐이킹(사용되지 않는 코드를 컴파일러가 제거하는 것)은 변수가 상수인지에 따라 달려 있습니다.

문제는, 어설션(asserts)에서 우리의 isInReleaseMode 부울이 상수가 아니기 때문입니다. 따라서 앱을 출시할 때 개발 및 릴리스 코드가 모두 포함됩니다.

반면, kReleaseMode는 상수입니다. 따라서 컴파일러는 사용되지 않는 코드를 올바르게 제거할 수 있으며, 우리는 안전하게 다음을 수행할 수 있습니다:

if (kReleaseMode) {

} else {
  // 릴리스 빌드에서 트리 쉐이크 될 것입니다.
}
반응형

댓글