diff --git a/bin/internal/engine.version b/bin/internal/engine.version
index 7406cc8..f85c5b5 100644
--- a/bin/internal/engine.version
+++ b/bin/internal/engine.version
@@ -1 +1 @@
-3459eb24361807fb186953a864cf890fa8e9d26a
+2dce47073a378673f6ca095e91b8065544c3a881
diff --git a/dev/devicelab/bin/tasks/build_ios_framework_module_test.dart b/dev/devicelab/bin/tasks/build_ios_framework_module_test.dart
index 539f71f..efbf90e 100644
--- a/dev/devicelab/bin/tasks/build_ios_framework_module_test.dart
+++ b/dev/devicelab/bin/tasks/build_ios_framework_module_test.dart
@@ -66,7 +66,7 @@
   String content = pubspec.readAsStringSync();
   content = content.replaceFirst(
     '\ndependencies:\n',
-    '\ndependencies:\n  device_info: 0.4.1\n  package_info: 0.4.0+9\n',
+    '\ndependencies:\n  device_info: 0.4.1\n  package_info: 0.4.0+9\n  connectivity: 3.0.3\n',
   );
   pubspec.writeAsStringSync(content, flush: true);
   await inDirectory(projectDir, () async {
@@ -284,6 +284,21 @@
       'device_info',
     );
     await _checkBitcode(pluginFrameworkPath, mode);
+    if (!await _linksOnFlutter(pluginFrameworkPath)) {
+      throw TaskResult.failure('$pluginFrameworkPath does not link on Flutter');
+    }
+
+    final String transitiveDependencyFrameworkPath = path.join(
+      outputPath,
+      mode,
+      'Reachability.xcframework',
+      localXcodeArmDirectoryName,
+      'Reachability.framework',
+      'Reachability',
+    );
+    if (await _linksOnFlutter(transitiveDependencyFrameworkPath)) {
+      throw TaskResult.failure('Transitive dependency $transitiveDependencyFrameworkPath unexpectedly links on Flutter');
+    }
 
     checkFileExists(path.join(
       outputPath,
@@ -407,6 +422,18 @@
       mode,
       'package_info.xcframework',
     ));
+
+    checkDirectoryExists(path.join(
+      cocoapodsOutputPath,
+      mode,
+      'connectivity.xcframework',
+    ));
+
+    checkDirectoryExists(path.join(
+      cocoapodsOutputPath,
+      mode,
+      'Reachability.xcframework',
+    ));
   }
 
   if (File(path.join(
@@ -443,3 +470,13 @@
     'arm64',
   ]);
 }
+
+Future<bool> _linksOnFlutter(String pathToBinary) async {
+  final String loadCommands = await eval('otool', <String>[
+    '-l',
+    '-arch',
+    'arm64',
+    pathToBinary,
+  ]);
+  return loadCommands.contains('Flutter.framework');
+}
diff --git a/packages/flutter_tools/bin/podhelper.rb b/packages/flutter_tools/bin/podhelper.rb
index b47e2c4..4a44d67 100644
--- a/packages/flutter_tools/bin/podhelper.rb
+++ b/packages/flutter_tools/bin/podhelper.rb
@@ -33,6 +33,9 @@
 def flutter_additional_ios_build_settings(target)
   return unless target.platform_name == :ios
 
+  # Return if it's not a Flutter plugin (transitive dependency).
+  return unless target.dependencies.any? { |dependency| dependency.name == 'Flutter' }
+
   # [target.deployment_target] is a [String] formatted as "8.0".
   inherit_deployment_target = target.deployment_target[/\d+/].to_i < 9
 
@@ -75,6 +78,9 @@
 def flutter_additional_macos_build_settings(target)
   return unless target.platform_name == :osx
 
+  # Return if it's not a Flutter plugin (transitive dependency).
+  return unless target.dependencies.any? { |dependency| dependency.name == 'FlutterMacOS' }
+
   # [target.deployment_target] is a [String] formatted as "10.8".
   deployment_target_major, deployment_target_minor = target.deployment_target.match(/(\d+).?(\d*)/).captures
 
