XPC 错误是否意味着无法与 macosx 守护程序通信?
Do XPC errors imply failure to communicate with a macosx daemon?
我遇到一个问题,与 CoreBluetooth 交互的 mac 二进制文件失败,因为 CBCentralManager 报告“不受支持”。我已经确保权利、代码签名和安全与隐私设置正确。当我进行详细的蓝牙日志记录时,我看到以下内容:
[com.apple.bluetooth:CoreBluetooth] Sending XPC message 1: {
kCBMsgArgName = "TestApp";
kCBMsgArgOptions = {
kCBInitOptionRestoreIdentifier = SuperUnique;
kCBInitOptionShowPowerAlert = 1;
kCBManagerPrivacySupported = 0;
};
kCBMsgArgType = 0;
kCBMsgArgVersion = 20161219;
}
Default 0x0 152 0 bluetoothd: [com.apple.bluetooth:Server.XPC] Received XPC message "CBMsgIdCheckIn" from session ""
**Error 0x0 152 0 bluetoothd: [com.apple.bluetooth:Server.XPC] No XPC object for key: kCBMsgArgType**
我的问题不是关于蓝牙的权限,而是关于这个错误的严重程度或者它是否是一个转移注意力的问题。这是否意味着我发送到 bluetoothd 的 IPC 消息未能传递?如果是这样,像这样的 XPC 问题通常会如何发生? SDK 版本不匹配?有没有办法获取更多的调试信息?
我从XCode 12.5.0升级到13.2.1,问题解决了。似乎是 SDK 不匹配,因此 XPC 消息未正确反序列化。
最好能得到关于 XPC 消息如何工作的更可靠的答案,但我还没有找到很多这方面的资源。取而代之的是,我至少可以说这已经解决了问题。
我遇到一个问题,与 CoreBluetooth 交互的 mac 二进制文件失败,因为 CBCentralManager 报告“不受支持”。我已经确保权利、代码签名和安全与隐私设置正确。当我进行详细的蓝牙日志记录时,我看到以下内容:
[com.apple.bluetooth:CoreBluetooth] Sending XPC message 1: {
kCBMsgArgName = "TestApp";
kCBMsgArgOptions = {
kCBInitOptionRestoreIdentifier = SuperUnique;
kCBInitOptionShowPowerAlert = 1;
kCBManagerPrivacySupported = 0;
};
kCBMsgArgType = 0;
kCBMsgArgVersion = 20161219;
}
Default 0x0 152 0 bluetoothd: [com.apple.bluetooth:Server.XPC] Received XPC message "CBMsgIdCheckIn" from session ""
**Error 0x0 152 0 bluetoothd: [com.apple.bluetooth:Server.XPC] No XPC object for key: kCBMsgArgType**
我的问题不是关于蓝牙的权限,而是关于这个错误的严重程度或者它是否是一个转移注意力的问题。这是否意味着我发送到 bluetoothd 的 IPC 消息未能传递?如果是这样,像这样的 XPC 问题通常会如何发生? SDK 版本不匹配?有没有办法获取更多的调试信息?
我从XCode 12.5.0升级到13.2.1,问题解决了。似乎是 SDK 不匹配,因此 XPC 消息未正确反序列化。
最好能得到关于 XPC 消息如何工作的更可靠的答案,但我还没有找到很多这方面的资源。取而代之的是,我至少可以说这已经解决了问题。