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

iOS16.0下PHPickerViewController设置selection为.people崩溃问题求助

解决PHPickerViewController设置.people选择类型崩溃的问题

问题场景

在iOS 16.0、Xcode 14.0.1环境下,使用PHPickerViewController时,只要给PHPickerConfiguration设置config.selection = .people,就会触发以下问题:

  • Picker界面直接显示“Unable to Load Photos”
  • 控制台输出错误日志:
[Picker] Showing picker unavailable UI (reason: crashed) with error: (null)  viewServiceDidTerminateWithError:: Error Domain=_UIViewServiceInterfaceErrorDomain Code=3 "(null)" UserInfo={Message=Service Connection Interrupted}

注释掉config.selection = .people这行代码后,Picker就能正常工作。

解决办法

  1. 升级iOS系统版本
    这个问题是iOS 16.0的已知bug,苹果在iOS 16.1及后续版本中修复了该问题。如果可以,建议测试升级到iOS 16.1或更高版本的设备,.people选择类型就能正常使用。

  2. iOS 16.0兼容方案
    如果需要适配iOS 16.0版本,可以做版本判断:

var config = PHPickerConfiguration()
if #available(iOS 16.1, *) {
    config.selection = .people
} else {
    // 降级处理,比如使用默认选择类型,或者提示用户升级系统
    config.selection = .default
}

或者如果必须筛选人像照片,可以先用普通Picker让用户选择照片,之后通过PHAsset的faceCount属性判断是否为人像照片,手动筛选。

  1. 确认照片权限
    虽然注释掉.people设置后功能正常,但还是要确保项目已经正确配置照片访问权限:
  • 在Info.plist中添加NSPhotoLibraryUsageDescription(或NSPhotoLibraryAddUsageDescription,根据需求选择),并填写合理的权限说明文本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 19:25:17