最近笔者在开发一款App 需要把数据从iOS App传输到电脑 在苦苦研究了一天以后 笔者有了两种想法
1 使用wifi网络连接 电脑端建立服务器 iOS端建立客户端 发送数据包
2 使用USB线缆 像Surge和Duet那样传输数据
可是 回复令在下有点失望 气死我了
The type of communications which you have asked are not supported by the iOS device. There is a private API used by iTunes which allows it to communicate with the device with regards to audio and file content on the device. However, there is no public API support to facilitate communications with an iOS application running on the device. If you are looking for such interaction between the device and the desktop host, you might want to instead investigate communications across a WiFi connection.
I’m aware of the Duet application. However the mechanism employed by Duet is not a public API for either iOS or macOSX. DTS only supports and discusses public API’s. Private API’s are not supported by DTS.
My response regarding WiFi was for you to implement a server client set of applications - one for the iOS device and one for the desktop system. For example, on the desktop system you could set up a web server, then implement the web client on the iOS device. Given the information you’ve provided so far, this would achieve the goal of communications between the 2 systems. However, this is unlikely to be the solution which you desire. Since you’d asked about Duet, I suspect you are looking for a more straightforward means to set up the communications.
The one means which I can think of would be to implement an MFI accessory to sit between the iOS device and the desktop system. However, DTS is here to support API level questions. I’m happy to answer direct questions about the use of an API. However, providing specific solutions to a design goal, we can only offer solutions where we are aware of them. Unfortunately, the Duet solution is not one that I can discuss. However, if you can ask a more specific API level question, I’m happy to have this incident billed to respond.
然后 就被吼了 大概意思是 你这个App还是用USB传输吧 但是这要靠你自己 不要想着换个方案用wifi他不适合你造吗
2 在下花了将近100大洋购买了Surge软件 为什么求助一下？！ （克金玩家福利）
参见 libimobiledevice 这个项目
Surge Networks Inc.
很棒 证明了我的想法 于是我开始从茫茫文献中寻找资料 我在libimobiledevice中找到了一份资料
libimobiledevice API : https://www.libimobiledevice.org/docs/html/files.html
我们可以看到 底层的USB传输协议名字是usbmuxd 这份协议被包括在libimobiledevice项目中
usbmuxd: A socket daemon to multiplex connections from and to iOS devices.
To developers, itmeans you can connect to any listening localhost socket on the device.
PeerTalk is an iOS and Mac Cocoa library for communicating over USB.