I'm found a simple fix for this issue. I found it not through any error messages or other debugging techniques; but by making an example project.
In the sample project, scanning with a nil serviceUUIDs argument behaves as expected! By process of elimination
and applying changes to this project, I figured out that the bug only occurs when code signing is omitted. It's baffling to me that this subtle difference in API behavior would vary based on whether the code is signed or not. But, I'm happy to find a fix.
Here is the PR with the fix as applied to my project: https://github.com/jnross/Bluetility/pull/20/files
And screenshots showing before and after the fix. Notice the difference in "Signing Certificate" as "None" vs "Sign to Run Locally"
Before:
After:
Post
Replies
Boosts
Views
Activity
I filed an Apple Developer Technical Support ticket about this. If I'm able, I'll share what I learn here.
I'm encountering the same problem! I publish a general-purpose BLE survey tool that many folks find useful for development. https://github.com/jnross/Bluetility. It is essential that this tool can scan for any advertising peripheral and not need to specify an advertised service UUID. This issue doesn't seem to be directly caused by Monterey because old builds continue to work. So it seems that instead this is caused by either Xcode 13 or the macOS SDK included with Xcode13.