我正在尝试在MacOS 11.4上使用带有Xcode 12.5.1的IOBluetooth,以获取连接到我的计算机的蓝牙设备列表。然而,我得到了这个错误。
[用户默认值]无法读取中的值CFPrefsPlistSource<0x600000af6b80>(域名:com.apple.Bluetooth,用户:kCF首选项任意用户,按主机:是,容器:(null(,需要内容刷新:是(:访问应用程序外部的首选项容器需要用户首选项读取或文件读取数据沙箱访问
在谷歌上搜索并启用应用程序沙盒中的每个权限,并将Privacy-Bluetooth Always Usage Description和Privacy–Bluetooth Peripheral Usage Description添加到info.plist后,我得到了相同的结果。我似乎找不出问题的原因。
这是我的代码:
import Cocoa
import IOBluetooth
class ViewController: NSViewController {
let ioBluetoothDevice = IOBluetoothDevice()
override func viewDidLoad() {
super.viewDidLoad()
print(IOBluetoothDevice.pairedDevices() ?? "No Paired Devices") // <- returns empty array even though I have a keyboard and mouse connected
}
}
原来我在错误的目标上为应用程序沙盒启用了蓝牙(感谢@El Tomato(