run method

  1. @override
Future<int> run()
override

Runs this command.

The return value is wrapped in a Future if necessary and returned by CommandRunner.runCommand.

Implementation

@override
Future<int> run() async {
  try {
    final target = argResults!['target'] as String;
    print('Building APK with Env Builder CLI.\n');

    final process = await ProcessRunner.runFlutterCommandStreaming([
      'build',
      'apk',
      '--release',
      '--obfuscate',
      '--split-debug-info=build/app/outputs/symbols',
      '--target=$target',
    ]);

    final exitCode = await process.exitCode;

    // Ensure cursor is visible at the end
    stdout.write('\x1b[?25h');

    if (exitCode == 0) {
      print('\nAPK build succeeded');
    }
    return exitCode;
  } catch (e) {
    print('Error building APK: $e');
    return 1;
  }
}