Fail ios workflow when simctl does not work (#15628)

* fail ios workflow when simctl does not work

* missed rename commit

* address comments
diff --git a/packages/flutter_tools/lib/src/ios/mac.dart b/packages/flutter_tools/lib/src/ios/mac.dart
index 29bf8c8..aff5667 100644
--- a/packages/flutter_tools/lib/src/ios/mac.dart
+++ b/packages/flutter_tools/lib/src/ios/mac.dart
@@ -149,6 +149,23 @@
     return _eulaSigned;
   }
 
+  bool _isSimctlInstalled;
+
+  /// Verifies that simctl is installed by trying to run it.
+  bool get isSimctlInstalled {
+    if (_isSimctlInstalled == null) {
+      try {
+        // This command will error if additional components need to be installed in
+        // xcode 9.2 and above.
+        final ProcessResult result = processManager.runSync(<String>['/usr/bin/xcrun', 'simctl', 'list']);
+        _isSimctlInstalled = result.stderr == null;
+      } on ProcessException {
+        _isSimctlInstalled = false;
+      }
+    }
+    return _isSimctlInstalled;
+  }
+
   bool get isVersionSatisfactory {
     if (!xcodeProjectInterpreter.isInstalled)
       return false;