only build macOS kernel in debug mode (#37365)

diff --git a/packages/flutter_tools/bin/macos_build_flutter_assets.sh b/packages/flutter_tools/bin/macos_build_flutter_assets.sh
index 200357a..63a15ba 100755
--- a/packages/flutter_tools/bin/macos_build_flutter_assets.sh
+++ b/packages/flutter_tools/bin/macos_build_flutter_assets.sh
@@ -80,7 +80,7 @@
     precache                                                                \
     --no-android                                                            \
     --no-ios                                                                \
-    --macos                                                                 \
+    --macos
 
 # TODO(jonahwilliams): support flavors https://github.com/flutter/flutter/issues/32923
 RunCommand "${FLUTTER_ROOT}/bin/flutter" --suppress-analytics               \
@@ -90,7 +90,7 @@
     assemble                                                                \
     -dTargetFile="${target_path}"                                           \
     -dTargetPlatform=darwin-x64                                             \
-    -dBuildMode="${build_mode}"                                             \
+    -dBuildMode=debug                                                       \
     --build-inputs="${build_inputs_path}"                                   \
     --build-outputs="${build_outputs_path}"                                 \
     "${build_target}"
diff --git a/packages/flutter_tools/lib/src/commands/build.dart b/packages/flutter_tools/lib/src/commands/build.dart
index 60be06c..9a70360 100644
--- a/packages/flutter_tools/lib/src/commands/build.dart
+++ b/packages/flutter_tools/lib/src/commands/build.dart
@@ -27,7 +27,7 @@
     addSubcommand(BuildIOSCommand());
     addSubcommand(BuildBundleCommand(verboseHelp: verboseHelp));
     addSubcommand(BuildWebCommand());
-    addSubcommand(BuildMacosCommand());
+    addSubcommand(BuildMacosCommand(verboseHelp: verboseHelp));
     addSubcommand(BuildLinuxCommand());
     addSubcommand(BuildWindowsCommand());
     addSubcommand(BuildFuchsiaCommand(verboseHelp: verboseHelp));
diff --git a/packages/flutter_tools/lib/src/commands/build_macos.dart b/packages/flutter_tools/lib/src/commands/build_macos.dart
index dc27a17..4da7b90 100644
--- a/packages/flutter_tools/lib/src/commands/build_macos.dart
+++ b/packages/flutter_tools/lib/src/commands/build_macos.dart
@@ -16,20 +16,9 @@
 
 /// A command to build a macOS desktop target through a build shell script.
 class BuildMacosCommand extends BuildSubCommand {
-  BuildMacosCommand() {
+  BuildMacosCommand({bool verboseHelp}) {
     usesTargetOption();
-    argParser.addFlag('debug',
-      negatable: false,
-      help: 'Build a debug version of your app.',
-    );
-    argParser.addFlag('profile',
-      negatable: false,
-      help: 'Build a version of your app specialized for performance profiling.'
-    );
-    argParser.addFlag('release',
-      negatable: false,
-      help: 'Build a version of your app specialized for performance profiling.',
-    );
+    addBuildModeFlags(verboseHelp: verboseHelp);
   }
 
   @override
diff --git a/packages/flutter_tools/lib/src/macos/build_macos.dart b/packages/flutter_tools/lib/src/macos/build_macos.dart
index a72a8b8..31434a7 100644
--- a/packages/flutter_tools/lib/src/macos/build_macos.dart
+++ b/packages/flutter_tools/lib/src/macos/build_macos.dart
@@ -30,9 +30,10 @@
     projectDir: flutterProject.directory,
     buildDir: flutterProject.dartTool.childDirectory('flutter_build'),
     defines: <String, String>{
-      kBuildMode: buildInfo.isDebug == true ? 'debug' : 'release',
+      // TODO(jonahwilliams): support other build types.
+      kBuildMode: 'debug',
       kTargetPlatform: 'darwin-x64',
-      kTargetFile: fs.file(targetOverride).absolute.path
+      kTargetFile: targetOverride,
     },
   );
 
diff --git a/packages/flutter_tools/lib/src/macos/macos_device.dart b/packages/flutter_tools/lib/src/macos/macos_device.dart
index bb1130b..d0d6a02 100644
--- a/packages/flutter_tools/lib/src/macos/macos_device.dart
+++ b/packages/flutter_tools/lib/src/macos/macos_device.dart
@@ -69,6 +69,8 @@
   @override
   Future<String> get sdkNameAndVersion async => os.name;
 
+  String _cachedExecutable;
+
   @override
   Future<LaunchResult> startApp(
     covariant MacOSApp package, {
@@ -92,6 +94,7 @@
         targetOverride: mainPath,
       );
     }
+    _cachedExecutable = prebuiltMacOSApp.executable;
 
     // Ensure that the executable is locatable.
     if (prebuiltMacOSApp == null) {
@@ -127,8 +130,8 @@
   // TODO(jonahwilliams): implement using process manager.
   // currently we rely on killing the isolate taking down the application.
   @override
-  Future<bool> stopApp(covariant PrebuiltMacOSApp app) async {
-    return killProcess(app.executable);
+  Future<bool> stopApp(covariant MacOSApp app) async {
+    return killProcess(_cachedExecutable);
   }
 
   @override
diff --git a/packages/flutter_tools/test/general.shard/commands/build_macos_test.dart b/packages/flutter_tools/test/general.shard/commands/build_macos_test.dart
index 63f76c6..4010064 100644
--- a/packages/flutter_tools/test/general.shard/commands/build_macos_test.dart
+++ b/packages/flutter_tools/test/general.shard/commands/build_macos_test.dart
@@ -79,7 +79,7 @@
     FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true),
   });
 
-  testUsingContext('macOS build invokes build script', () async {
+  testUsingContext('macOS build invokes xcode build', () async {
     final BuildCommand command = BuildCommand();
     applyMocksToCommand(command);
     fs.directory('macos').createSync();
@@ -91,8 +91,8 @@
       projectDir: flutterProject.directory,
       buildDir: flutterProject.dartTool.childDirectory('flutter_build'),
       defines: <String, String>{
-        kBuildMode: 'release',
-        kTargetFile: fs.path.absolute(fs.path.join('lib', 'main.dart')),
+        kBuildMode: 'debug',
+        kTargetFile: 'lib/main.dart',
         kTargetPlatform: 'darwin-x64',
       }
     );
diff --git a/packages/flutter_tools/test/general.shard/macos/macos_device_test.dart b/packages/flutter_tools/test/general.shard/macos/macos_device_test.dart
index d0d7c3b..0f9f77e 100644
--- a/packages/flutter_tools/test/general.shard/macos/macos_device_test.dart
+++ b/packages/flutter_tools/test/general.shard/macos/macos_device_test.dart
@@ -48,24 +48,6 @@
       ProcessManager: () => mockProcessManager,
     });
 
-    testUsingContext('stopApp', () async {
-      const String psOut = r'''
-tester    17193   0.0  0.2  4791128  37820   ??  S     2:27PM   0:00.09 /Applications/foo
-''';
-      final MockMacOSApp mockMacOSApp = MockMacOSApp();
-      when(mockMacOSApp.executable).thenReturn('tester');
-      when(mockProcessManager.run(<String>['ps', 'aux'])).thenAnswer((Invocation invocation) async {
-        return ProcessResult(1, 0, psOut, '');
-      });
-      when(mockProcessManager.run(<String>['kill', '17193'])).thenAnswer((Invocation invocation) async {
-        return ProcessResult(2, 0, '', '');
-      });
-      expect(await device.stopApp(mockMacOSApp), true);
-      verify(mockProcessManager.run(<String>['kill', '17193']));
-    }, overrides: <Type, Generator>{
-      ProcessManager: () => mockProcessManager,
-    });
-
     group('startApp', () {
       MockMacOSApp macOSApp;
       MockFileSystem mockFileSystem;