diff --git a/packages/flutter_tools/lib/src/macos/cocoapods.dart b/packages/flutter_tools/lib/src/macos/cocoapods.dart index e675b50c5efa..c4e9b86e41ad 100644 --- a/packages/flutter_tools/lib/src/macos/cocoapods.dart +++ b/packages/flutter_tools/lib/src/macos/cocoapods.dart @@ -48,6 +48,8 @@ const String outOfDatePluginsPodfileConsequence = ''' const String cocoaPodsInstallInstructions = 'see https://guides.cocoapods.org/using/getting-started.html#installation for instructions.'; +const String cocoaPodsUpdateInstructions = 'see https://guides.cocoapods.org/using/getting-started.html#updating-cocoapods for instructions.'; + const String podfileIosMigrationInstructions = ''' rm ios/Podfile'''; diff --git a/packages/flutter_tools/lib/src/macos/cocoapods_validator.dart b/packages/flutter_tools/lib/src/macos/cocoapods_validator.dart index 56b16dbfd5b1..93fccd62e5ab 100644 --- a/packages/flutter_tools/lib/src/macos/cocoapods_validator.dart +++ b/packages/flutter_tools/lib/src/macos/cocoapods_validator.dart @@ -29,31 +29,28 @@ class CocoaPodsValidator extends DoctorValidator { .evaluateCocoaPodsInstallation; ValidationType status = ValidationType.success; - if (cocoaPodsStatus == CocoaPodsStatus.recommended) { - messages.add(ValidationMessage(_userMessages.cocoaPodsVersion((await _cocoaPods.cocoaPodsVersionText).toString()))); - } else { - if (cocoaPodsStatus == CocoaPodsStatus.notInstalled) { + switch (cocoaPodsStatus) { + case CocoaPodsStatus.recommended: + messages.add(ValidationMessage(_userMessages.cocoaPodsVersion((await _cocoaPods.cocoaPodsVersionText).toString()))); + case CocoaPodsStatus.notInstalled: status = ValidationType.missing; messages.add(ValidationMessage.error( _userMessages.cocoaPodsMissing(noCocoaPodsConsequence, cocoaPodsInstallInstructions))); - - } else if (cocoaPodsStatus == CocoaPodsStatus.brokenInstall) { + case CocoaPodsStatus.brokenInstall: status = ValidationType.missing; messages.add(ValidationMessage.error( _userMessages.cocoaPodsBrokenInstall(brokenCocoaPodsConsequence, cocoaPodsInstallInstructions))); - - } else if (cocoaPodsStatus == CocoaPodsStatus.unknownVersion) { + case CocoaPodsStatus.unknownVersion: status = ValidationType.partial; messages.add(ValidationMessage.hint( _userMessages.cocoaPodsUnknownVersion(unknownCocoaPodsConsequence, cocoaPodsInstallInstructions))); - } else { + case CocoaPodsStatus.belowMinimumVersion: + case CocoaPodsStatus.belowRecommendedVersion: status = ValidationType.partial; final String currentVersionText = (await _cocoaPods.cocoaPodsVersionText).toString(); messages.add(ValidationMessage.hint( - _userMessages.cocoaPodsOutdated(currentVersionText, cocoaPodsRecommendedVersion.toString(), noCocoaPodsConsequence, cocoaPodsInstallInstructions))); - } + _userMessages.cocoaPodsOutdated(currentVersionText, cocoaPodsRecommendedVersion.toString(), noCocoaPodsConsequence, cocoaPodsUpdateInstructions))); } - return ValidationResult(status, messages); } } diff --git a/packages/flutter_tools/test/general.shard/macos/cocoapods_validator_test.dart b/packages/flutter_tools/test/general.shard/macos/cocoapods_validator_test.dart index 1a5c24068366..22216ba9f8ad 100644 --- a/packages/flutter_tools/test/general.shard/macos/cocoapods_validator_test.dart +++ b/packages/flutter_tools/test/general.shard/macos/cocoapods_validator_test.dart @@ -41,6 +41,7 @@ void main() { expect(message.type, ValidationMessageType.hint); expect(message.message, contains('CocoaPods $currentVersion out of date')); expect(message.message, contains('(1.11.0 is recommended)')); + expect(message.message, contains('getting-started.html#updating-cocoapods')); }); }); }