IOBluetooth 通过沙箱访问阻止
IOBluetooth block by sandbox access
我正在尝试在 MacOS 11.4 上使用带有 Xcode 12.5.1 的 IOBluetooth 来获取连接到我的计算机的蓝牙设备列表。但是我收到了这个错误。
[User Defaults] Couldn't read values in
CFPrefsPlistSource<0x600000af6b80> (Domain: com.apple.Bluetooth, User:
kCFPreferencesAnyUser, ByHost: Yes, Container: (null), Contents Need
Refresh: Yes): accessing preferences outside an application's
container requires user-preference-read or file-read-data sandbox
access
在进行一些 google 搜索并启用 App Sandboxing 中的每个权限并将隐私 - 蓝牙始终使用说明和隐私 - 蓝牙外围设备使用说明添加到 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
}
}
原来我在错误的目标上为 App Sandbox 启用了蓝牙。 (感谢@El Tomato)
我正在尝试在 MacOS 11.4 上使用带有 Xcode 12.5.1 的 IOBluetooth 来获取连接到我的计算机的蓝牙设备列表。但是我收到了这个错误。
[User Defaults] Couldn't read values in CFPrefsPlistSource<0x600000af6b80> (Domain: com.apple.Bluetooth, User: kCFPreferencesAnyUser, ByHost: Yes, Container: (null), Contents Need Refresh: Yes): accessing preferences outside an application's container requires user-preference-read or file-read-data sandbox access
在进行一些 google 搜索并启用 App Sandboxing 中的每个权限并将隐私 - 蓝牙始终使用说明和隐私 - 蓝牙外围设备使用说明添加到 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
}
}
原来我在错误的目标上为 App Sandbox 启用了蓝牙。 (感谢@El Tomato)