You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xcode中macOS客户端与DriverKit驱动连接异常问题及解决

DriverKit客户端与驱动通信异常:IOServiceGetMatchingServices返回成功但iterator为空

问题场景

在macOS应用的Xcode项目中,采用DriverKit(搭配HIDDriverKit)框架,通过IOKit实现客户端与驱动的连接:

  • 本地调试时,调用IOServiceGetMatchingServices能正常获取iterator,可正常与驱动通信
  • TestFlight分发的版本在部分系统中,该函数返回kIOReturnSuccess(ret=0),但iterator为空(值为0),导致无法建立连接
  • 已确认:通过systemextensionsctl list检查驱动处于启用且激活状态(Enabled和Active均标星),AppSandbox已开启,SIP处于启用状态

相关代码片段:

ret = IOServiceGetMatchingServices(kIOMainPortDefault, IOServiceNameMatching(dextIdentifier), &iterator);
if (ret != kIOReturnSuccess)
{
    goto fail;
}

while ((service = IOIteratorNext(iterator)) != IO_OBJECT_NULL) {
    ret = IOServiceOpen(service, mach_task_self(), 0, &connection);
    if(ret == kIOReturnSuccess)
    {
        break;
    }
    else 
    {
        syslog(LOG_WARNING, "Error");
    }
    IOObjectRelease(service);
}

解决方案

在应用的entitlements文件中添加com.apple.security.temporary-exception.iokit-user-client-class权限,即可解决该问题。

感谢@pmdj提供的解决方案。

内容的提问来源于stack exchange,提问作者Jafar Heidary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 14:45:09