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

iOS 18更新后ICDeviceBrowser无法识别外接相机问题求助

iOS 18 下 ImageCaptureCore 外接相机检测问题及解决方案

问题概述

使用ImageCaptureCore框架的ICDeviceBrowser查找USB外接相机的功能,在iOS 18前正常运行,但升级后无法检测设备,也不触发代理事件。排查发现Contents授权状态为未确定,请求授权时无用户弹窗直接返回拒绝,已配置Camera隐私描述且相机权限请求正常。


解决 Contents 授权问题

1. 补充 Info.plist 权限描述

iOS 18 对ImageCaptureCore的外接设备Contents访问新增了单独的权限要求,需在Info.plist中添加对应的权限描述键:

<key>NSImageCaptureCoreContentsUsageDescription</key>
<string>需要访问外接相机的内容以获取照片/视频</string>

如果上述键不生效,可尝试补充添加NSContentsUsageDescription,确保系统能识别权限申请的用途。

2. 正确发起授权请求

不要尝试手动触发授权,需使用ImageCaptureCore官方授权API发起请求,确保触发系统权限弹窗:

import ImageCaptureCore

ICDeviceAuthorizationManager.requestAuthorization(for: .contents) { status in
    switch status {
    case .authorized:
        // 授权成功后启动ICDeviceBrowser
        self.startDeviceBrowser()
    case .denied, .restricted:
        // 授权失败,提示用户前往系统设置开启权限
        break
    case .notDetermined:
        // 理论上不会进入此分支,因为已发起授权请求
        break
    @unknown default:
        break
    }
}

注意:必须在启动ICDeviceBrowser前完成授权请求,且确认授权状态为.authorized后再初始化浏览器。

3. 排查权限异常的其他可能

  • 检查系统设置:前往「设置」→「你的应用」→「权限」,确认「Contents」权限是否被手动拒绝。
  • 验证签名配置:确保应用签名未禁用相关权限的entitlement。

替代 Apple 库方案

如果ImageCaptureCore的问题无法快速解决,可尝试以下官方替代方案:

1. AVFoundation

通过AVCaptureDeviceDiscoverySession枚举外接视频设备,适合仅需获取相机视频流或拍照的场景:

import AVFoundation

let discoverySession = AVCaptureDevice.DiscoverySession(
    deviceTypes: [.externalUnknown],
    mediaType: .video,
    position: .unspecified
)

for device in discoverySession.devices {
    // 识别到外接相机设备
    print("外接相机:\(device.localizedName)")
}

2. Photos 框架(仅导入场景)

如果需求是从外接相机导入照片/视频,可使用PHPicker配合外部源选择,系统会自动处理外接设备的访问:

import PhotosUI

let configuration = PHPickerConfiguration(photoLibrary: .shared())
configuration.filter = .images
configuration.selectionLimit = 1

let picker = PHPickerViewController(configuration: configuration)
picker.delegate = self
present(picker, animated: true)

3. FileProvider 框架(文件访问场景)

若外接相机以文件系统形式挂载,可使用FileProvider框架访问设备内的文件,此方案更适合文件浏览,而非相机控制。


内容的提问来源于stack exchange,提问作者Alex Plishka

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 14:12:03