I just became aware of this posting and have the following response.
I hate to be the bearer of bad news, but I can explain this issue. Actually, there are 2 changes in iOS 10 leading to similar consequences.
Issue 1. With iOS iOS 10.x a security requirement was mandated that for an application to work with an accessory (to be notified of the attachment or removal of the accessory), the application must demonstrate that it knows something about the accessory. The requirement is now that the application must include the protocolString registered by the accessory, in the UISupportedExternalAccessoryProtocols property in the Info.plist of the application. This demonstrates that the application knows something about the accessory.
When the application has linked with the External Accessories framework but does not have the protocolString registered by an attached accessory, a debug string accidentally left in the iOS 10.0 build fires - resulting in the log statement "Couldn't find the "com.apple.private.externalaccessory.showallaccessories" entitlement". The "com.apple.private.externalaccessory.showallaccessories" entitlement is an internal iOS engineer entitlement and has never been available outside of iOS engineering. For iOS 10.1, the log statement has been removed.
It might seem that the answer is to include the accessory's protocolString in the app's UISupportedExternalAccessoryProtocols property. This will work in a development version of the app. However on submission of the app to App Review, all apps with a UISupportedExternalAccessoryProtocols are checked to see if the application bundle ID has been approved by the accessory vendor. (This is not a new limitaton) If the bundle ID has not been whitelisted, the app is rejected. The solution is to contact the accessory vendor and have them whitelist the app bundle ID with the accessory.
Another issue here is that some accessories - like the Apple Camera adapter do not include a protocolString - these accessories can't be matched.
Both limitations affect applications which want to detect the accessory attachment and obtain the device information from the accessoryInfo structure to notify the user that the accessory has been attached.
Issue 2. iOS 10 was implemented so that the protocolString check is case sensitive. The effect is the same as issue 1, the accessory is not notified of the accessory attachment. This was not a requirement in earlier releases of iOS. If the application was able to open an EASession in iOS 9, I suggest that you verify the case of the protocolString registered by the accessory.
For those of you who would like to request a change to this policy I suggest using the Apple Developer Bug Report Web Page to submit an enahncement request. http://bugreport.apple.com
rich kubota - rkubota@apple.com
developer technical support CoreOS/Hardware/MFI