Xcode
gamepad
IOHIDManager

Xcode Gameアプリケーションでゲームパッドが認識されない

問題

USBゲームパッドの制御プログラムはコマンドラインプログラムでは動作するにも関わらず、Gameプロジェクトに移植するとゲームパッドを認識しない。

原因

またSandboxのせいでした。(気づくまで6時間浪費)
外部機器の動作が期待通りにならない場合はまずはSandboxを疑いましょう。
Xcode9.2から表示が変わっているようです。Sandbox全体をOFFにすることも可能です。

sandbox2.png

環境

macOS 10.13.1
Xcode9.2 macOS/Gameプロジェクト SceneKit
LogicoolGamepad F310 (Xbox360タイプ)
XBox 360 Controller Driver Version 0.16.4 (https://github.com/360Controller/360Controller/)

GCControllerではゲームパッドを認識しない模様。MFi必須なのでしょうか。
そのため、IOHIDManagerでUSB機器として扱いました。