macOS下ImageCaptureCore无法识别扫描仪的技术求助
解决macOS应用通过ImageCaptureCore检测不到USB扫描仪的问题
完善USB权限的精准配置
仅添加com.apple.security.device.usb权限键不够,必须在.entitlements文件中为该权限指定允许的设备标识符。打开.entitlements,补充扫描仪的USB厂商ID(VID)和产品ID(PID):<key>com.apple.security.device.usb</key> <dict> <key>allowedIdentifiers</key> <array> <string>vid-XXXX,pid-XXXX</string> <!-- 替换为你的扫描仪VID/PID --> <string>vid-YYYY,pid-YYYY</string> <!-- 第二款扫描仪的VID/PID --> </array> </dict>可通过「关于本机→系统报告→USB」路径获取扫描仪的VID和PID值。
补充ImageCapture权限描述
在Info.plist中添加NSImageCaptureUsageDescription键,明确说明应用访问图像捕获设备的用途:<key>NSImageCaptureUsageDescription</key> <string>需要访问扫描仪以完成文档扫描操作</string>该描述是系统授予扫描仪访问权限的必要条件,缺失会导致系统静默拒绝设备访问请求。
检查Hardened Runtime配置
在Xcode项目的「Signing & Capabilities→Hardened Runtime」面板中,确认已勾选Allow Access to USB Devices选项,确保权限配置生效。官方示例参考
Apple官方提供的ImageCaptureSample示例项目完整展示了ImageCaptureCore的设备检测、权限配置及扫描流程实现,可在Xcode的示例项目库中搜索获取,直接参考其权限配置和设备扫描逻辑。
内容的提问来源于stack exchange,提问作者fbix
相关产品推荐
相关产品推荐

