Scan for peripherals with many services while in the background

My app searches for many devices each with their own primary service. While in the foreground it appears I can scan using a very large list of services and I am able to recieve didDiscover events for all of them. However, when in the background it appears that same list doesn't work. I usually only get didDiscover events for 1 or maybe 2 peripherals in the area. Is there a limit on the number of services I can attempt to scan in the background? I have found no documentation on limits.


A few things I noticed:

- If I call `scanForPeripherals` with the same list on a loop, every few seconds, I receive multiple didDIscover events. Which seems like a workaround to CBCentralManagerScanOptionAllowDuplicatesKey defaulting to false in the background

- If I call `scanForPeripherals` with the same list, but shuffled, then I will discover a different 1 or 2 devices. Still not the full list.

- If I call `scanForPeripherals` with a small subset, about 10 services, then I am able to find all the services.


The best attempt I've had is in a combination of the above: scanning for a subset of 10 services and every few seconds scan for a new set. I eventually am able to see my peripherals, but with 100's it will take an unreasonable amount of time for the app I'm building.