generateBiometricService function
Future<void>
generateBiometricService(
)
Implementation
Future<void> generateBiometricService() async {
final isFree = await FirebaseService.instance.isFreeUseOn(feature: 'biometric');
if (!isFree) {
ConsoleLog.warning(ProjectUtils.freeUseBlockString);
return;
}
ConsoleLog.title('Generating BiometricService ...');
DartgenxConfig config = DartgenxConfig.load();
final file = File(config.outputPath?.biometricService ?? 'lib/biometric_service.dart');
file.createSync(recursive: true);
file.writeAsStringSync(biometricServiceTemplate);
ConsoleLog.success('BiometricService generated at ${file.path}');
ConsoleLog.info('Installing required dependencies...');
final packages = ['local_auth'];
ConsoleLog.step('flutter pub add ${packages.join(" ")}');
final result = await Process.run(
'flutter',
['pub', 'add', ...packages],
runInShell: true,
);
stdout.write(result.stdout);
stderr.write(result.stderr);
ConsoleLog.line();
ConsoleLog.info("Add the following permission to AndroidManifest.xml: ");
ConsoleLog.step("<uses-permission android:name=\"android.permission.USE_BIOMETRIC\"/>");
ConsoleLog.line();
ConsoleLog.info("Make the following changes in MainActivity file: ");
ConsoleLog.step("import io.flutter.embedding.android.FlutterFragmentActivity\n\nclass MainActivity: FlutterFragmentActivity() {\n // ...\n}");
ConsoleLog.line();
ConsoleLog.info("Add the following permission to Info.plist: \n");
ConsoleLog.step("<key>NSFaceIDUsageDescription</key>\n<string>Explain why your app needs Face ID access here.</string>");
ConsoleLog.line();
}