check to see if the xcode eula has been signed
diff --git a/packages/flutter_tools/lib/src/ios/ios_workflow.dart b/packages/flutter_tools/lib/src/ios/ios_workflow.dart
index 106a0e1..6c2026c 100644
--- a/packages/flutter_tools/lib/src/ios/ios_workflow.dart
+++ b/packages/flutter_tools/lib/src/ios/ios_workflow.dart
@@ -28,15 +28,7 @@
     );
 
     Function _xcodeExists = () {
-      if (xcode.isInstalledAndMeetsVersionCheck) {
-        return ValidationType.installed;
-      }
-
-      if (xcode.isInstalled) {
-        return ValidationType.partial;
-      }
-
-      return ValidationType.missing;
+      return xcode.isInstalled ? ValidationType.installed : ValidationType.missing;
     };
 
     Function _xcodeVersionSatisfactory = () {
@@ -47,6 +39,10 @@
       return ValidationType.missing;
     };
 
+    Function _xcodeEulaSigned = () {
+      return xcode.eulaSigned ? ValidationType.installed : ValidationType.missing;
+    };
+
     Function _brewExists = () {
       return exitsHappy(<String>['brew', '-v'])
         ? ValidationType.installed : ValidationType.missing;
@@ -71,12 +67,19 @@
     iosValidator.addValidator(xcodeValidator);
 
     xcodeValidator.addValidator(new Validator(
-      'Version Check',
-      description: 'Xcode version is at least $kXcodeRequiredVersionMajor.$kXcodeRequiredVersionMinor',
+      'version',
+      description: 'Xcode minimum version of $kXcodeRequiredVersionMajor.$kXcodeRequiredVersionMinor.0',
       resolution: 'Download the latest version or update via the Mac App Store',
       validatorFunction: _xcodeVersionSatisfactory
     ));
 
+    xcodeValidator.addValidator(new Validator(
+      'EULA',
+      description: 'XCode end user license agreement',
+      resolution: "Open XCode or run the command 'sudo xcodebuild -license'",
+      validatorFunction: _xcodeEulaSigned
+    ));
+
     Validator brewValidator = new Validator(
       'brew',
       description: 'install additional development packages',
diff --git a/packages/flutter_tools/lib/src/ios/mac.dart b/packages/flutter_tools/lib/src/ios/mac.dart
index ef95ce0..e17cec5 100644
--- a/packages/flutter_tools/lib/src/ios/mac.dart
+++ b/packages/flutter_tools/lib/src/ios/mac.dart
@@ -40,6 +40,23 @@
     return _isInstalled;
   }
 
+  /// Has the EULA been signed?
+  bool get eulaSigned {
+    if (!isInstalled)
+      return false;
+
+    try {
+      ProcessResult result = Process.runSync('/usr/bin/xcrun', <String>['clang']);
+      if (result.stdout != null && result.stdout.contains('license'))
+        return false;
+      if (result.stderr != null && result.stderr.contains('license'))
+        return false;
+      return true;
+    } catch (error) {
+      return false;
+    }
+  }
+
   bool _xcodeVersionSatisfactory;
   bool get xcodeVersionSatisfactory {
     if (_xcodeVersionSatisfactory != null) {