我想知道将密码直接放入Dart代码中是否安全,如下所示。 Flutter编译发布代码时会删除代码吗?当然,我想确保代码不能反编译,以便可以提取用户名和密码。
bool get isInDebugMode {
bool inDebugMode = false;
assert(inDebugMode = true);
return inDebugMode;
}
if(inDebugMode){
emailController.text = 'random@email.com';
passwordController.text = 'secret';
}
答案 0 :(得分:3)
当inDebugMode
是const值时,摇树会删除该代码。
“安全”是一个很强的词,尽管即使摇晃也可以删除代码。
您可能会犯一个错误,导致摇树保留代码。
您可能会将代码提交给CVS存储库。
...
您可以使用
const bool isProduction = bool.fromEnvironment('dart.vm.product');
if(isProduction) {
...
}
具有lib/main.dart
的不同flutter run -t lib/debug_main.dart
文件
或上述的assert方法(另请参见How to exclude debug code)
答案 1 :(得分:3)
您提供的代码不会摇摇欲坠。由于isInDebugMode
不是常数。
相反,您可以通过以下方式使用assert
:
assert(() {
emailController.text = 'random@email.com';
passwordController.text = 'secret';
return true;
}());