Important info on iOS 11 and above
Sharing this for others benefit. I came across this library because starting in iOS 11, NSNetService does not support P2P Bluetooth anymore (see this thread with confirmation from Apple).
Thus the only way to support P2P Bluetooth is to use the DNS-SD APIs. I have tested HHServices in Apple's WiTap demo app where I use both HHServices and NSNetService, with HHServices just handling Bluetooth. I didn't fully wire up HHServices to actually pass data, but I am able to start an HHServicesPublisher and HHServicesBrowser alongside using NSNetService and NSNetServiceBrowser. However, one important point seems to be that you must start publishing/browsing with HHServices before NSNetService (assumption being how NSNetService uses the DNS-SD APIs conflicts if done in the wrong order).
I am able to see HHServices find peers when devices are on Bluetooth only, then when I turn on Wifi on both devices, I then observe callbacks for the same devices via NSNetService indicating that it also found the devices via Wifi P2P as well (since none of the devices are connected to a Wifi network).
This is obviously a preliminary test, but it seems promising that you can still support P2P Bluetooth with WiFI P2P by using this combination. Cheers!
So sorry for the extremely late reply, mail got buried in the inbox...🤦♂️ Thanks a bunch anyway for sharing your findings, will add this information to the readme! Cheers!