Notification Service Extension无法使用Call Extension,profile team id与app前缀id不一致问题
问题原因结论
你观察到的provisioning profile中App ID前缀与Team ID不一致,就是导致该Sandbox报错的直接原因。
报错原理说明
Apple平台的沙箱校验逻辑中,访问CallKit的com.apple.CallKit.CallDirectory系统服务时,会对调用方的签名身份做严格校验:
- 正常情况下,所有新创建的App ID默认前缀与所属开发者账号的Team ID完全一致,这是系统权限校验的基础规则
- 当App ID前缀与Team ID不匹配时,系统会判定调用方没有访问系统级CallKit服务的权限,直接触发Sandbox限制拦截,抛出你遇到的159错误码
- 你个人账号的profile中两个标识符完全匹配,满足校验规则,因此运行无异常
修复步骤
- 让该公司的Apple开发者账号管理员登录Apple Developer后台,将notification service extension对应的App ID的前缀修改为与账号Team ID完全一致
- 使用修改后的App ID重新生成notification service extension、宿主App、Call Extension所有关联target的provisioning profile
- 确认所有新生成的profile中
ApplicationIdentifierPrefix字段与TeamID字段值完全相同后,重新签名构建即可解决该报错
内容的提问来源于stack exchange,提问作者Piepants
相关产品推荐
相关产品推荐

