diff --git a/Resources/Info.plist b/Resources/Info.plist
index 48d4f800..f1beb4f9 100644
--- a/Resources/Info.plist
+++ b/Resources/Info.plist
@@ -93,15 +93,27 @@
- UTImportedTypeDeclarations
+ UTExportedTypeDeclarations
UTTypeIdentifier
com.splittabbar.tabtransfer
+ UTTypeDescription
+ Bonsplit Tab Transfer
+ UTTypeConformsTo
+
+ public.data
+
UTTypeIdentifier
com.cmux.sidebar-tab-reorder
+ UTTypeDescription
+ cmux Sidebar Tab Reorder
+ UTTypeConformsTo
+
+ public.data
+
NSAppTransportSecurity
diff --git a/cmuxTests/CmuxWebViewKeyEquivalentTests.swift b/cmuxTests/CmuxWebViewKeyEquivalentTests.swift
index 501256ad..7eb7460f 100644
--- a/cmuxTests/CmuxWebViewKeyEquivalentTests.swift
+++ b/cmuxTests/CmuxWebViewKeyEquivalentTests.swift
@@ -11001,6 +11001,27 @@ final class InternalTabDragConfigurationTests: XCTestCase {
)
}
}
+
+@MainActor
+final class InternalTabDragBundleDeclarationTests: XCTestCase {
+ private func exportedTypeIdentifiers(bundle: Bundle) -> Set {
+ let declarations = (bundle.object(forInfoDictionaryKey: "UTExportedTypeDeclarations") as? [[String: Any]]) ?? []
+ return Set(declarations.compactMap { $0["UTTypeIdentifier"] as? String })
+ }
+
+ func testAppBundleExportsInternalDragTypes() {
+ let exported = exportedTypeIdentifiers(bundle: Bundle(for: AppDelegate.self))
+
+ XCTAssertTrue(
+ exported.contains("com.splittabbar.tabtransfer"),
+ "Expected app bundle to export bonsplit tab-transfer type, got \(exported)"
+ )
+ XCTAssertTrue(
+ exported.contains("com.cmux.sidebar-tab-reorder"),
+ "Expected app bundle to export sidebar tab-reorder type, got \(exported)"
+ )
+ }
+}
#endif
@MainActor