Как отключить все журналы [debugPrint()] в сборке релиза во флаттере?
Я установил apk для сборки релиза на устройстве Android, но если я подключу это устройство к Android studio, то смогу увидеть все операторы Logs/debugPrint.
Есть ли способ отключить все логи?
3 ответа
Я объединил принятый ответ с идеей отсюда и использовал его main.dart, чтобы везде отключить debugPrint.
const bool isProduction = bool.fromEnvironment('dart.vm.product');
void main() {
if (isProduction) {
debugPrint = (String message, {int wrapWidth}) {};
}
runApp(
MyApp()
);
}
Вы можете назначить фиктивную функцию глобальной debugPrint
переменная:
import 'package:flutter/material.dart';
main() {
debugPrint = (String message, {int wrapWidth}) {};
}
В последних версиях Flutter возврат пустой функции не работает. Возврат null не рекомендуется, и его следует избегать — если он используется, он помечается тегом, что функции void не должны возвращать null. Вместо этого пустая строка не вызовет никаких проблем и работает отлично:
main() {
debugPrint = (String? message, {int? wrapWidth}) => '';
}