Hi again, after some more testing I've narrowed it down to this: The device must advertise a name over BLE in order to be connectable. Once I added a name to the advertisement data it immediately shows up on all devices.
It seems like the only reason it worked on a few of our iPhones it that they'd been connected to the specific device before we started using AccessorySetupKit. We also advertised a name of BLE before switching to only manufacturer specific data, so I'm guessing the phone remembered that name. I've confirmed this by testing a device that had only been connected to one of our devices and it was only able to find that specific device even though they all advertised the same data.
This requirement does not seem to be documented anywhere that I can find, so I don't know if it's indented behavior or not, but at least I can work around it for now by advertising a device name.
Topic:
App & System Services
SubTopic:
Core OS
Tags: