diff --git a/packages/flutter_tools/lib/src/macos/cocoapods.dart b/packages/flutter_tools/lib/src/macos/cocoapods.dart
index e675b50..c4e9b86 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 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 56b16db..93fccd6 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 @@
       .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 1a5c240..22216ba 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 @@
       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'));
     });
   });
 }
