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

iOS15.x已有共享记录时UICloudSharingController不显示Add People如何解决

iOS 15+ UICloudSharingController「添加人员」选项丢失临时解决方案

问题说明

  • iOS 14.x及更低版本中,已存在共享记录时,UICloudSharingController的人员表单第一部分最后一行会显示「添加人员」选项
  • iOS 15.x至15.2 beta版本中,该选项在所有第三方应用中统一消失,仅苹果官方自带应用不受影响,现象和编译使用的Xcode版本无关
  • 对应现象截图:
    iOS14 正常显示效果
    iOS15 选项丢失效果

临时解决方案

目前经开发者验证的可行方案有两类,可根据业务场景选择:

方案1:自定义添加入口,主动调用CloudKit接口

在应用内额外新增「添加共享人员」按钮,点击后自行实现人员信息输入、权限选择逻辑,直接调用CloudKit接口添加参与者,不依赖系统共享控制器的内置选项:

func addShareParticipant(share: CKShare, userEmail: String) async throws {
    let lookupInfo = CKUserIdentity.LookupInfo(emailAddress: userEmail)
    let userIdentity = CKUserIdentity(lookupInfo: lookupInfo)
    let newParticipant = CKShare.Participant(
        userIdentity: userIdentity,
        permission: .readWrite,
        acceptanceStatus: .pending
    )
    share.addParticipant(newParticipant)
    try await CKContainer.default().privateCloudDatabase.modifyRecords(
        saving: [share],
        deleting: []
    )
    // 操作完成后可重新弹出UICloudSharingController刷新列表
}

该方案适配性最强,不受系统版本变更影响,就是需要额外开发简单的交互UI

方案2:显式配置CKShare权限参数

初始化CKShare时显式配置权限属性,大概率可以触发系统控制器重新显示「添加人员」选项:

let share = CKShare(rootRecord: yourRootRecord)
// 显式关闭公开访问权限
share.publicPermission = .none
// 显式开启参与者添加新用户的权限
share.allowParticipantsToAddParticipants = true
// 后续正常初始化UICloudSharingController使用即可

该方案适配成本极低,但是仅对部分iOS 15小版本有效,无法覆盖100%用户

以上方案均为官方修复前的临时绕路方案,待苹果推送系统更新修复该问题后,建议切回系统原生默认逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 23:54:05