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

配置问题致AVCaptureSession启动后App崩溃锁屏求助

iOS相机扫码添加AVCaptureSession数据后崩溃(XPC connection interrupted)排查方案

权限配置检查

  • 确认Info.plist中已添加相机权限描述:
    • NSCameraUsageDescription:必须填写明确的权限申请理由,不能为空或占位符
    • 若涉及扫码后访问照片,同步检查NSPhotoLibraryAddUsageDescription/NSPhotoLibraryUsageDescription
  • 验证权限申请流程:确保在初始化AVCaptureSession前已请求相机权限,且用户授权后才启动会话

项目配置冲突排查

  • Capabilities检查:
    • 确认未开启与相机冲突的权限,比如Screen Time限制、App Tracking Transparency配置异常
    • 检查Background Modes:若开启了不必要的后台模式(如后台音频),可能与相机会话抢占系统资源
  • Build Settings对比:
    • 对比新项目与现有项目的Other Linker Flags,排查是否存在干扰AVFoundation的特殊标记
    • 检查Enable Bitcode状态:新项目默认多为关闭,现有项目若开启,尝试关闭后重新测试
  • 第三方库冲突排查:
    • 检查项目中是否有其他调用相机/AVFoundation的第三方SDK(如美颜、直播类SDK),这类库可能存在会话抢占或资源冲突
    • 临时移除非必要第三方库,逐步排查冲突源

代码细节验证

尽管代码在新项目正常运行,仍需确认现有项目中的执行细节:

  • 确保AVCaptureSession的初始化、配置、启动操作都在主线程执行(AVFoundation部分API强制要求主线程操作)
  • 检查会话停止/释放逻辑:是否存在重复添加输入输出、未正确停止会话就释放实例的情况
  • 验证AVCaptureSession的预设分辨率:部分旧设备不支持高分辨率预设,可尝试切换为AVCaptureSessionPresetMedium测试

日志与系统层面排查

  • 除XPC connection interrupted外,通过以下方式获取更详细日志:
    • 连接Xcode,开启Debug > Debug Workflow > View Memory Graph Hierarchy,查看崩溃时的内存泄漏或野指针情况
    • 在Mac的Console应用中过滤AVFoundation相关日志,可能会得到权限拒绝、资源不可用等具体错误信息
  • 测试不同设备:若仅在特定设备/系统版本崩溃,需排查iOS版本兼容性(比如iOS 16+的相机权限逻辑有调整)

若能补充以下信息,可进一步缩小排查范围:

  • 现有项目的iOS部署目标版本
  • Info.plist中权限相关的完整配置
  • 相机扫码模块的完整代码片段(尤其是会话初始化、添加输入输出的部分)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 06:12:48