peertalk

PeerTalk 是一个用于通过 USB 进行通信的 iOS 和 Mac Cocoa 库。

                         ┌──────────────────────────────┐
                         │ ┌──────────────────────────┐ │
                         │ │                          │ │
  ┌─────────┐            │ │                          │ │
  │┌───────┐│            │ │          Hello           │ │
  ││       ││            │ │                          │ │
  ││ Hello ││            │ │                          │ │
  ││       ││            │ │                          │ │
  │└───────┘│            │ └──────────────────────────┘ │
  │    ◯    │            \  ─────────────────────────── \
  └────╦────┘             \  \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
       ║         ╔══════════■ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
       ╚═════════╝          \  ─────────────────────────── \
      - meep -               └─────────────────────────────┘
         - beep -

亮点

  1. 为您提供 USB 设备连接/断开事件和已连接设备的信息

  2. 可以连接到受支持的已连接设备(例如 iPhone)上的 TCP 服务,从而桥接通过 USB 传输的通信

  3. 提供更高级别的 API(PTChannel 和 PTProtocol)以方便实现。

  4. 经过测试并为 libdispatch(又名 Grand Central Dispatch)设计。

https://github.com/rsms/peertalk 获取资源

在 Apple App Store 中的使用

PeerTalk 已成功在 iOS 和 OS X 应用商店发布。

一个很好的例子是 Duet Display,它是一款出色的软件,允许您使用 Lightning 或 30 针电缆将 iDevice 用作 Mac 的额外显示器。

Facebook 的 Origami 将 PeerTalk 用于其 Origami Live iOS 应用程序(事实上,这是 PeerTalk 首次使用的地方,早在 2012 年)

可能意味着您可以将 PeerTalk 用于目标是 App Store 的应用程序。

入门指南

下载代码并在 OS X 10.7 或更高版本的 Xcode 4.3 或更高版本中打开 peertalk.xcodeproj

  1. 选择 “peertalk” 目标并按 Cmd+U (Product → Test) 并验证单元测试是否通过。

  2. 选择 “Peertalk Example” 目标并按 Cmd+R (Product → Run)。您应该会看到一个不太美观的标准窗口,其中包含一些文本,说明它已准备就绪。那是您正在查看的 OS X 示例应用程序。

  3. 在 Xcode 中,为 iPhone 模拟器选择 “Peertalk iOS Example” 目标,然后按 Cmd+R (Product → Run)。现在应该有一些操作正在进行。尝试在 OS X 应用程序和 iPhone 模拟器中运行的应用程序之间发送一些消息。

  4. 连接您的 iOS 设备(iPhone、iPod 或 iPad)并关闭 iPhone 模拟器,然后返回 Xcode。为已连接的 iOS 设备选择 “Peertalk iOS Example” 目标。按 Cmd+R (Product → Run) 以在您的设备上构建并运行示例应用程序。

应该可以工作。

演示视频:http://www.youtube.com/watch?v=kQPWy8N0mBg

<iframe width="880" height="530" src=" http://www.youtube.com/embed/kQPWy8N0mBg?hd=1&rel=0" frameborder="0" allowfullscreen></iframe>

macOS 沙盒模式

rsms#36 (评论) 中 @Lessica 建议以下授权片段使 macOS 能够访问 peertalk

<key>com.apple.security.temporary-exception.sbpl</key>
<array>
    <string>(allow network-outbound (literal "/private/var/run/usbmuxd"))</string>
</array>