diff --git a/packages/pigeon/CHANGELOG.md b/packages/pigeon/CHANGELOG.md
index 1a49043..c0db66c 100644
--- a/packages/pigeon/CHANGELOG.md
+++ b/packages/pigeon/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 4.2.11
+
+* [swift] Fixes compressed list data types.
+
 ## 4.2.10
 
 * Changes generated Java enum field to be final.
diff --git a/packages/pigeon/lib/generator_tools.dart b/packages/pigeon/lib/generator_tools.dart
index bbe6124..526afd7 100644
--- a/packages/pigeon/lib/generator_tools.dart
+++ b/packages/pigeon/lib/generator_tools.dart
@@ -9,7 +9,7 @@
 import 'ast.dart';
 
 /// The current version of pigeon. This must match the version in pubspec.yaml.
-const String pigeonVersion = '4.2.10';
+const String pigeonVersion = '4.2.11';
 
 /// Read all the content from [stdin] to a String.
 String readStdin() {
diff --git a/packages/pigeon/lib/swift_generator.dart b/packages/pigeon/lib/swift_generator.dart
index 92e3105..0b1442f 100644
--- a/packages/pigeon/lib/swift_generator.dart
+++ b/packages/pigeon/lib/swift_generator.dart
@@ -404,11 +404,11 @@
     'String': 'String',
     'int': 'Int32',
     'double': 'Double',
-    'Uint8List': '[UInt8]',
-    'Int32List': '[Int32]',
-    'Int64List': '[Int64]',
-    'Float32List': '[Float32]',
-    'Float64List': '[Float64]',
+    'Uint8List': 'FlutterStandardTypedData',
+    'Int32List': 'FlutterStandardTypedData',
+    'Int64List': 'FlutterStandardTypedData',
+    'Float32List': 'FlutterStandardTypedData',
+    'Float64List': 'FlutterStandardTypedData',
     'Object': 'Any',
   };
   if (swiftTypeForDartTypeMap.containsKey(type.baseName)) {
diff --git a/packages/pigeon/platform_tests/shared_test_plugin_code/lib/integration_tests.dart b/packages/pigeon/platform_tests/shared_test_plugin_code/lib/integration_tests.dart
index 4e68c3a..5346472 100644
--- a/packages/pigeon/platform_tests/shared_test_plugin_code/lib/integration_tests.dart
+++ b/packages/pigeon/platform_tests/shared_test_plugin_code/lib/integration_tests.dart
@@ -69,13 +69,10 @@
       expect(echoObject.anInt, sentObject.anInt);
       expect(echoObject.aDouble, sentObject.aDouble);
       expect(echoObject.aString, sentObject.aString);
-      // TODO(stuartmorgan): Enable these once they work for all generators;
-      // currently at least Swift is broken.
-      // See https://github.com/flutter/flutter/issues/115906
-      //expect(echoObject.aByteArray, sentObject.aByteArray);
-      //expect(echoObject.a4ByteArray, sentObject.a4ByteArray);
-      //expect(echoObject.a8ByteArray, sentObject.a8ByteArray);
-      //expect(echoObject.aFloatArray, sentObject.aFloatArray);
+      expect(echoObject.aByteArray, sentObject.aByteArray);
+      expect(echoObject.a4ByteArray, sentObject.a4ByteArray);
+      expect(echoObject.a8ByteArray, sentObject.a8ByteArray);
+      expect(echoObject.aFloatArray, sentObject.aFloatArray);
       expect(listEquals(echoObject.aList, sentObject.aList), true);
       expect(mapEquals(echoObject.aMap, sentObject.aMap), true);
       expect(echoObject.nestedList?.length, sentObject.nestedList?.length);
@@ -177,19 +174,26 @@
       expect(receivedString, sentString);
     });
 
-    // TODO(stuartmorgan): Enable these once they work for all generators;
-    // currently at least Swift is broken.
-    // TODO(tarrinneal): Finish tests for int lists once issue solved.
-    // See https://github.com/flutter/flutter/issues/115906
-    // testWidgets('Uint8List serialize and deserialize correctly',
-    //     (WidgetTester _) async {
-    //   final HostIntegrationCoreApi api = HostIntegrationCoreApi();
-    //   final List<int> data = [102, 111, 114, 116, 121, 45, 116, 119, 111, 0];
-    //   final Uint8List sentUint8List = Uint8List.fromList(data);
-    //   final Uint8List receivedUint8List =
-    //       await api.echoUint8List(sentUint8List);
-    //   expect(receivedUint8List, sentUint8List);
-    // });
+    testWidgets('Uint8List serialize and deserialize correctly',
+        (WidgetTester _) async {
+      final HostIntegrationCoreApi api = HostIntegrationCoreApi();
+      final List<int> data = <int>[
+        102,
+        111,
+        114,
+        116,
+        121,
+        45,
+        116,
+        119,
+        111,
+        0
+      ];
+      final Uint8List sentUint8List = Uint8List.fromList(data);
+      final Uint8List receivedUint8List =
+          await api.echoUint8List(sentUint8List);
+      expect(receivedUint8List, sentUint8List);
+    });
   });
 
   group('Host async API tests', () {
diff --git a/packages/pigeon/platform_tests/shared_test_plugin_code/lib/src/generated/core_tests.gen.dart b/packages/pigeon/platform_tests/shared_test_plugin_code/lib/src/generated/core_tests.gen.dart
index b701c66..9b0f14b 100644
--- a/packages/pigeon/platform_tests/shared_test_plugin_code/lib/src/generated/core_tests.gen.dart
+++ b/packages/pigeon/platform_tests/shared_test_plugin_code/lib/src/generated/core_tests.gen.dart
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 //
-// Autogenerated from Pigeon (v4.2.10), do not edit directly.
+// Autogenerated from Pigeon (v4.2.11), do not edit directly.
 // See also: https://pub.dev/packages/pigeon
 // ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import
 import 'dart:async';
diff --git a/packages/pigeon/platform_tests/test_plugin/example/ios/RunnerTests/AllDatatypesTests.swift b/packages/pigeon/platform_tests/test_plugin/example/ios/RunnerTests/AllDatatypesTests.swift
index 6229ef5..df69d27 100644
--- a/packages/pigeon/platform_tests/test_plugin/example/ios/RunnerTests/AllDatatypesTests.swift
+++ b/packages/pigeon/platform_tests/test_plugin/example/ios/RunnerTests/AllDatatypesTests.swift
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+import Flutter
 import XCTest
 @testable import test_plugin
 
@@ -40,10 +41,11 @@
       anInt: 1,
       aDouble: 2.0,
       aString: "123",
-      aByteArray: [UInt8]("1234".data(using: .utf8)!),
-      a4ByteArray: [Int32].init(arrayLiteral: 1, 2, 3, 4),
-      a8ByteArray: [Int64].init(arrayLiteral: 1, 2, 3, 4, 5, 6, 7, 8),
-      aFloatArray: [Float64].init(arrayLiteral: 1, 2, 3, 4, 5, 6, 7, 8),
+      aByteArray: FlutterStandardTypedData(bytes: "1234".data(using: .utf8)!),
+      a4ByteArray: FlutterStandardTypedData(int32: "1234".data(using: .utf8)!),
+      a8ByteArray: FlutterStandardTypedData(int64: "12345678".data(using: .utf8)!),
+      aFloatArray: FlutterStandardTypedData(float64: "12345678".data(using: .utf8)!),
+
       aList: [1, 2],
       aMap: ["hello": 1234],
       nestedList: [[true, false], [true]],
diff --git a/packages/pigeon/platform_tests/test_plugin/example/ios/RunnerTests/PrimitiveTests.swift b/packages/pigeon/platform_tests/test_plugin/example/ios/RunnerTests/PrimitiveTests.swift
index 539feae..7740ada 100644
--- a/packages/pigeon/platform_tests/test_plugin/example/ios/RunnerTests/PrimitiveTests.swift
+++ b/packages/pigeon/platform_tests/test_plugin/example/ios/RunnerTests/PrimitiveTests.swift
@@ -13,7 +13,7 @@
   func aDouble(value: Double) -> Double { value }
   func aMap(value: [AnyHashable: Any?]) -> [AnyHashable: Any?] { value }
   func aList(value: [Any?]) -> [Any?] { value }
-  func anInt32List(value: [Int32]) -> [Int32] { value }
+  func anInt32List(value: FlutterStandardTypedData) -> FlutterStandardTypedData { value }
   func aBoolList(value: [Bool?]) -> [Bool?] { value }
   func aStringIntMap(value: [String?: Int32?]) -> [String?: Int32?] { value }
 }
diff --git a/packages/pigeon/platform_tests/test_plugin/ios/Classes/TestPlugin.swift b/packages/pigeon/platform_tests/test_plugin/ios/Classes/TestPlugin.swift
index b27bbb2..fdb4f35 100644
--- a/packages/pigeon/platform_tests/test_plugin/ios/Classes/TestPlugin.swift
+++ b/packages/pigeon/platform_tests/test_plugin/ios/Classes/TestPlugin.swift
@@ -64,7 +64,7 @@
     return aString
   }
 
-  func echoUint8List(aUint8List: [UInt8]) -> [UInt8] {
+  func echoUint8List(aUint8List: FlutterStandardTypedData) -> FlutterStandardTypedData {
     return aUint8List
   }
 
diff --git a/packages/pigeon/platform_tests/test_plugin/macos/Classes/TestPlugin.swift b/packages/pigeon/platform_tests/test_plugin/macos/Classes/TestPlugin.swift
index be3d518..d40fcb8 100644
--- a/packages/pigeon/platform_tests/test_plugin/macos/Classes/TestPlugin.swift
+++ b/packages/pigeon/platform_tests/test_plugin/macos/Classes/TestPlugin.swift
@@ -64,7 +64,7 @@
     return aString
   }
 
-  func echoUint8List(aUint8List: [UInt8]) -> [UInt8] {
+  func echoUint8List(aUint8List: FlutterStandardTypedData) -> FlutterStandardTypedData {
     return aUint8List
   }
 
diff --git a/packages/pigeon/pubspec.yaml b/packages/pigeon/pubspec.yaml
index 7f68ad1..24bc2af 100644
--- a/packages/pigeon/pubspec.yaml
+++ b/packages/pigeon/pubspec.yaml
@@ -2,7 +2,7 @@
 description: Code generator tool to make communication between Flutter and the host platform type-safe and easier.
 repository: https://github.com/flutter/packages/tree/main/packages/pigeon
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3Apigeon
-version: 4.2.10 # This must match the version in lib/generator_tools.dart
+version: 4.2.11 # This must match the version in lib/generator_tools.dart
 
 environment:
   sdk: ">=2.12.0 <3.0.0"
diff --git a/packages/pigeon/test/swift_generator_test.dart b/packages/pigeon/test/swift_generator_test.dart
index c22ddbe..cda0f48 100644
--- a/packages/pigeon/test/swift_generator_test.dart
+++ b/packages/pigeon/test/swift_generator_test.dart
@@ -187,10 +187,10 @@
     expect(code, contains('var aInt: Int32? = nil'));
     expect(code, contains('var aDouble: Double? = nil'));
     expect(code, contains('var aString: String? = nil'));
-    expect(code, contains('var aUint8List: [UInt8]? = nil'));
-    expect(code, contains('var aInt32List: [Int32]? = nil'));
-    expect(code, contains('var aInt64List: [Int64]? = nil'));
-    expect(code, contains('var aFloat64List: [Float64]? = nil'));
+    expect(code, contains('var aUint8List: FlutterStandardTypedData? = nil'));
+    expect(code, contains('var aInt32List: FlutterStandardTypedData? = nil'));
+    expect(code, contains('var aInt64List: FlutterStandardTypedData? = nil'));
+    expect(code, contains('var aFloat64List: FlutterStandardTypedData? = nil'));
   });
 
   test('gen one flutter api', () {
