I am working on a game targeting Mac and iOS, which has game controller support implemented recently. I use Game Controller (GC) framework for PS4/ XBox controllers and HID API included in IOKit for the others (Steelseries Nimbus and non-mainstream brands), simply because their controllers do not seem to work with GC Framework.
After submitting to review, the game has been rejected for the reason of "The app references non-public symbols" which list out all of the functions related to HID API used in the game, including officially documented functions which considered essential for the implementation, such as:
https://developer.apple.com/documentation/iokit/1438383-iohidmanagercreate?language=objc https://developer.apple.com/documentation/iokit/1438369-iohidmanageropen?language=objc https://developer.apple.com/documentation/iokit/1438399-iohidmanagerregisterdevicematchi?language=objc
I have contact Apple Developer support about this, but everything I received was auto-reply emails state that they can only provide administrative level support and advice me to direct this question toward forums and community, thus, I'm here.
If you happen to have an alternative solution for this or any experience regard similar issues please do consider leaving an answer or comment.
Thank you,
P/S: Please also comment if you have a source listing out the public API(s) that developers can use. I have been following the idea "if it's documented, then I can use" but after this incident, it seems to not be the case.