I tested the removal of supported accessories (which have com.apple.p1 and com.apple.p2 ), and the EADemo sample application still detected connected accessories and allowed EADemo to view the protocols that they supported.
I have not tested sending data, but as for the above functionality, I have seen identical behavior.
To answer your general question, yes, if you want to communicate with ExternalAccessory , you must specify the accessory protocol in your information plist.
I did a few more searches, but could not find many references to com.apple.p1 . The only place I could find was in this project on GitHub. However, I think this may be the case of Cargo Cult Programming .
Or maybe the protocols do something, and I just couldn't see the difference in behavior.
source share