[tools] Add Xcode version to non-verbose Flutter doctor (#87022)
diff --git a/packages/flutter_tools/lib/src/ios/xcodeproj.dart b/packages/flutter_tools/lib/src/ios/xcodeproj.dart index 2e5d4bc..27bdad8 100644 --- a/packages/flutter_tools/lib/src/ios/xcodeproj.dart +++ b/packages/flutter_tools/lib/src/ios/xcodeproj.dart
@@ -58,6 +58,7 @@ processManager: processManager, ), _version = version, + _versionText = version?.toString(), _usage = usage; /// Create an [XcodeProjectInterpreter] for testing.
diff --git a/packages/flutter_tools/lib/src/macos/xcode_validator.dart b/packages/flutter_tools/lib/src/macos/xcode_validator.dart index 18bb98b..3103041 100644 --- a/packages/flutter_tools/lib/src/macos/xcode_validator.dart +++ b/packages/flutter_tools/lib/src/macos/xcode_validator.dart
@@ -32,9 +32,11 @@ } final String? versionText = _xcode.versionText; if (versionText != null) { - messages.add(ValidationMessage(versionText)); + xcodeVersionInfo = versionText; + if (xcodeVersionInfo.contains(',')) { + xcodeVersionInfo = xcodeVersionInfo.substring(0, xcodeVersionInfo.indexOf(',')); + } } - if (!_xcode.isInstalledAndMeetsVersionCheck) { xcodeStatus = ValidationType.partial; messages.add(ValidationMessage.error(_userMessages.xcodeOutdated(xcodeRequiredVersion.toString())));
diff --git a/packages/flutter_tools/test/general.shard/macos/xcode_validator_test.dart b/packages/flutter_tools/test/general.shard/macos/xcode_validator_test.dart index 655004f..40d994e 100644 --- a/packages/flutter_tools/test/general.shard/macos/xcode_validator_test.dart +++ b/packages/flutter_tools/test/general.shard/macos/xcode_validator_test.dart
@@ -23,6 +23,7 @@ final XcodeValidator validator = XcodeValidator(xcode: xcode, userMessages: UserMessages()); final ValidationResult result = await validator.validate(); expect(result.type, ValidationType.missing); + expect(result.statusInfo, isNull); expect(result.messages.last.type, ValidationMessageType.error); expect(result.messages.last.message, contains('Xcode not installed')); }); @@ -182,6 +183,11 @@ final XcodeValidator validator = XcodeValidator(xcode: xcode, userMessages: UserMessages()); final ValidationResult result = await validator.validate(); expect(result.type, ValidationType.installed); + expect(result.messages.length, 1); + final ValidationMessage firstMessage = result.messages.first; + expect(firstMessage.type, ValidationMessageType.information); + expect(firstMessage.message, 'Xcode at /Library/Developer/CommandLineTools'); + expect(result.statusInfo, '1000.0.0'); }); }); }