Debugging 编译发行版时,颤振是否删除调试模式代码?

Debugging 编译发行版时,颤振是否删除调试模式代码?,debugging,dart,flutter,assert,production,Debugging,Dart,Flutter,Assert,Production,我想知道直接在下面的Dart代码中放置密码是否安全。在编译代码以供发布时,Flatter是否删除了代码?当然,我想确保代码不能被反编译,这样就可以提取用户名和密码 bool get isInDebugMode { bool inDebugMode = false; assert(inDebugMode = true); return inDebugMode; } if(inDebugMode){ emailController.text = 'random@email.com'

我想知道直接在下面的Dart代码中放置密码是否安全。在编译代码以供发布时,Flatter是否删除了代码?当然,我想确保代码不能被反编译,这样就可以提取用户名和密码

bool get isInDebugMode {
  bool inDebugMode = false;
  assert(inDebugMode = true);
  return inDebugMode;
}

if(inDebugMode){
  emailController.text = 'random@email.com';
  passwordController.text = 'secret';
}

inDebugMode
是常量值时,树抖动将删除该代码

“安全”是一个强有力的词,尽管摇动树会删除代码。
您可能会犯错误,导致树抖动以保留代码。
您可能会将代码提交给CVS回购协议。

你可以用

  • 常量值
  • 不同的
    lib/main.dart
    文件与
    flatter run-t lib/debug\u main.dart

  • 或者前面提到的assert方法(另请参见)


您提供的代码不会被树动摇。As
isInDebugMode
不是常数

相反,您可以通过以下方式使用
assert

assert(() {
  emailController.text = 'random@email.com';
  passwordController.text = 'secret';
  return true;
}());

这意味着这里没有
assert(() {
  emailController.text = 'random@email.com';
  passwordController.text = 'secret';
  return true;
}());