I'm working on OS X app which has support of game controllers. It must support controllers both originated from IOKit HID and GameController.framework. Problem I'm facing is that most of MFi GameController.framework compatible controllers are also hid devices. So, MFi controllers appear twice in controller list, both as GCController and IOHIDDevice. Is there any way to make a connection between them, to ignore HID device?

GCController objects have private property deviceRef , which points to underlying hid device, making it possible to recognize and ignore device in HID layer. Problem is that deviceRef is a private property, so I can't use it in App Store app.

Ideal solution would be a way to identify that IOHIDDeviceRef is MFi device, so I can skip it completely in my HID layer.