macOS Catalyst:如何使用媒体传输协议读取 USB 设备? IOUSBHost API 有可能吗?

macOS Catalyst: How to read a USB device with Media Transfer Protocol? Is it possible with IOUSBHost API?

我想制作一个 macOS 应用程序 (Catalyst) 通过 USB 数据线与 Nintendo Switch 交互。我发现Nintendo Switch在系统设置中启动“通过USB连接复制到电脑”功能时会使用MTP

此外,我在Apple的开发者文档中找到了API、IOUSBHost。 (https://developer.apple.com/documentation/iousbhost)

所以我的问题是,这 API 可以与 USB MTP 设备一起使用吗?如果没有,我能否找到其他方法来实现使用 macOS Catalyst 读取 USB MTP 设备?

建议您需要的交互是将文件复制到 Nintendo Switch 或从 Nintendo Switch 复制文件,我会说您实际上不需要创建一个 driver 来做这件事,而且 IOUSBHost 对您的目的来说太深了。

我将从 macOS 上的 MTP 实现开始。

尝试 libmtp:通过 homebrew, with their sourceforge or forks on github.

libmtp 是用 C 编写的,如果您想在 Swift 中使用它们来开发一些复杂的应用程序,则需要创建包装器或使用桥接器 header。

还有一些适用于 macOS 的 helpers 可能适合您,也可能不适合您。

无论如何,如果 files-oriented 交互是您想要的,请专注于 MTP 库来实现您需要的东西,而不是 USB 东西。