PeerTalk is a iOS and OS X Cocoa library for communicating over USB and TCP.
Note: Several people have reported that Apple doesn't officially support the technology on which PeerTalk is built, when submitting apps using PeerTalk to the App Store. Be adviced that the capacity you might want to use this will be limited to corporate "internal app stores" and individual developers, rather than a public audience. (It's a shame that Apple has dropped support for any wired communication starting with the iPhone 5.)
Provides you with USB device attach/detach events and attached device's info
Can connect to TCP services on supported attached devices (e.g. an iPhone), bridging the communication over USB transport
Offers a higher-level API (PTChannel and PTProtocol) for convenient implementations.
Tested and designed for libdispatch (aka Grand Central Dispatch).
Grab the goods from https://github.com/rsms/peertalk
Suck down the code and open peertalk.xcodeproj in Xcode 4.3 or later on OS X 10.7 or later.
Select the "peertalk" target and hit Cmd+U (Product → Test) and verify that the unit tests passed.
Select the "Peertalk Example" target and hit Cmd+R (Product → Run). You should se a less than-pretty, standard window with some text saying it's ready. That's the OS X example app you're looking at.
In Xcode, select the "Peertalk iOS Example" target for the iPhone Simulator, and hit Cmd+R (Product → Run). There should be some action going on now. Try sending some messages between the OS X app and the app running in the iPhone simulator.
Connect your iOS device (iPhone, iPod or iPad) and kill the iPhone simulator and go back to Xcode. Select the "Peertalk iOS Example" target for your connected iOS device. Hit Cmd+R (Product → Run) to build and run the sample app on your device.
It should work.
Demo video: http://www.youtube.com/watch?v=kQPWy8N0mBg