Unverified Commit 31933af4 authored by Jenn Magder's avatar Jenn Magder Committed by GitHub

Update minimum required version to Xcode 12.3 (#93094)

parent 296eeb59
...@@ -18,11 +18,11 @@ import '../base/version.dart'; ...@@ -18,11 +18,11 @@ import '../base/version.dart';
import '../build_info.dart'; import '../build_info.dart';
import '../ios/xcodeproj.dart'; import '../ios/xcodeproj.dart';
Version get xcodeRequiredVersion => Version(12, 0, 1, text: '12.0.1'); Version get xcodeRequiredVersion => Version(12, 3, null, text: '12.3');
/// Diverging this number from the minimum required version will provide a doctor /// Diverging this number from the minimum required version will provide a doctor
/// warning, not error, that users should upgrade Xcode. /// warning, not error, that users should upgrade Xcode.
Version get xcodeRecommendedVersion => Version(13, 0, 0, text: '13.0.0'); Version get xcodeRecommendedVersion => Version(13, null, null, text: '13');
/// SDK name passed to `xcrun --sdk`. Corresponds to undocumented Xcode /// SDK name passed to `xcrun --sdk`. Corresponds to undocumented Xcode
/// SUPPORTED_PLATFORMS values. /// SUPPORTED_PLATFORMS values.
......
...@@ -148,7 +148,7 @@ void main() { ...@@ -148,7 +148,7 @@ void main() {
testWithoutContext('xcodeVersionSatisfactory is true when version meets minimum', () { testWithoutContext('xcodeVersionSatisfactory is true when version meets minimum', () {
xcodeProjectInterpreter.isInstalled = true; xcodeProjectInterpreter.isInstalled = true;
xcodeProjectInterpreter.version = Version(12, 0, 1); xcodeProjectInterpreter.version = Version(12, 3, null);
expect(xcode.isRequiredVersionSatisfactory, isTrue); expect(xcode.isRequiredVersionSatisfactory, isTrue);
}); });
...@@ -162,21 +162,21 @@ void main() { ...@@ -162,21 +162,21 @@ void main() {
testWithoutContext('xcodeVersionSatisfactory is true when minor version exceeds minimum', () { testWithoutContext('xcodeVersionSatisfactory is true when minor version exceeds minimum', () {
xcodeProjectInterpreter.isInstalled = true; xcodeProjectInterpreter.isInstalled = true;
xcodeProjectInterpreter.version = Version(12, 3, 0); xcodeProjectInterpreter.version = Version(12, 5, 0);
expect(xcode.isRequiredVersionSatisfactory, isTrue); expect(xcode.isRequiredVersionSatisfactory, isTrue);
}); });
testWithoutContext('xcodeVersionSatisfactory is true when patch version exceeds minimum', () { testWithoutContext('xcodeVersionSatisfactory is true when patch version exceeds minimum', () {
xcodeProjectInterpreter.isInstalled = true; xcodeProjectInterpreter.isInstalled = true;
xcodeProjectInterpreter.version = Version(12, 0, 2); xcodeProjectInterpreter.version = Version(12, 3, 1);
expect(xcode.isRequiredVersionSatisfactory, isTrue); expect(xcode.isRequiredVersionSatisfactory, isTrue);
}); });
testWithoutContext('isRecommendedVersionSatisfactory is false when version is less than minimum', () { testWithoutContext('isRecommendedVersionSatisfactory is false when version is less than minimum', () {
xcodeProjectInterpreter.isInstalled = true; xcodeProjectInterpreter.isInstalled = true;
xcodeProjectInterpreter.version = Version(11, 0, 0); xcodeProjectInterpreter.version = Version(12, null, null);
expect(xcode.isRecommendedVersionSatisfactory, isFalse); expect(xcode.isRecommendedVersionSatisfactory, isFalse);
}); });
...@@ -232,7 +232,7 @@ void main() { ...@@ -232,7 +232,7 @@ void main() {
testWithoutContext('isInstalledAndMeetsVersionCheck is true when macOS and installed and version is satisfied', () { testWithoutContext('isInstalledAndMeetsVersionCheck is true when macOS and installed and version is satisfied', () {
xcodeProjectInterpreter.isInstalled = true; xcodeProjectInterpreter.isInstalled = true;
xcodeProjectInterpreter.version = Version(12, 0, 1); xcodeProjectInterpreter.version = Version(12, 3, null);
expect(xcode.isInstalledAndMeetsVersionCheck, isTrue); expect(xcode.isInstalledAndMeetsVersionCheck, isTrue);
expect(fakeProcessManager.hasRemainingExpectations, isFalse); expect(fakeProcessManager.hasRemainingExpectations, isFalse);
......
...@@ -56,20 +56,20 @@ void main() { ...@@ -56,20 +56,20 @@ void main() {
final ValidationResult result = await validator.validate(); final ValidationResult result = await validator.validate();
expect(result.type, ValidationType.partial); expect(result.type, ValidationType.partial);
expect(result.messages.last.type, ValidationMessageType.error); expect(result.messages.last.type, ValidationMessageType.error);
expect(result.messages.last.message, contains('Flutter requires a minimum Xcode version of 12.0.1')); expect(result.messages.last.message, contains('Flutter requires a minimum Xcode version of 12.3'));
}); });
testWithoutContext('Emits partial status when Xcode below recommended version', () async { testWithoutContext('Emits partial status when Xcode below recommended version', () async {
final ProcessManager processManager = FakeProcessManager.any(); final ProcessManager processManager = FakeProcessManager.any();
final Xcode xcode = Xcode.test( final Xcode xcode = Xcode.test(
processManager: processManager, processManager: processManager,
xcodeProjectInterpreter: XcodeProjectInterpreter.test(processManager: processManager, version: Version(12, 0, 1)), xcodeProjectInterpreter: XcodeProjectInterpreter.test(processManager: processManager, version: Version(12, 4, null)),
); );
final XcodeValidator validator = XcodeValidator(xcode: xcode, userMessages: UserMessages()); final XcodeValidator validator = XcodeValidator(xcode: xcode, userMessages: UserMessages());
final ValidationResult result = await validator.validate(); final ValidationResult result = await validator.validate();
expect(result.type, ValidationType.partial); expect(result.type, ValidationType.partial);
expect(result.messages.last.type, ValidationMessageType.hint); expect(result.messages.last.type, ValidationMessageType.hint);
expect(result.messages.last.message, contains('Flutter recommends a minimum Xcode version of 13.0.0')); expect(result.messages.last.message, contains('Flutter recommends a minimum Xcode version of 13'));
}); });
testWithoutContext('Emits partial status when Xcode EULA not signed', () async { testWithoutContext('Emits partial status when Xcode EULA not signed', () async {
......
...@@ -294,10 +294,10 @@ class FakeXcodeProjectInterpreter implements XcodeProjectInterpreter { ...@@ -294,10 +294,10 @@ class FakeXcodeProjectInterpreter implements XcodeProjectInterpreter {
bool get isInstalled => true; bool get isInstalled => true;
@override @override
String get versionText => 'Xcode 12.0.1'; String get versionText => 'Xcode 12.3';
@override @override
Version get version => Version(12, 0, 1); Version get version => Version(12, 3, null);
@override @override
Future<Map<String, String>> getBuildSettings( Future<Map<String, String>> getBuildSettings(
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment