已获取com.apple.developer.contacts.notes权限,Xcode 11.3.1仍提示权限缺失
排查Xcode 11.3.1中
com.apple.developer.contacts.notes权限缺失提示的问题 我之前也踩过类似的Xcode权限配置坑,先别急着认定是Bug,咱们先从几个常见的配置疏漏入手排查:
确认授权文件(Entitlements.plist)的正确性
- 打开你的授权文件,确保
com.apple.developer.contacts.notes的类型是Boolean,且值设置为YES(注意别写成字符串"true",Xcode里布尔值要选对应的选项) - 检查Target的关联:进入Target的
Signing & Capabilities标签页,确认Entitlements字段确实指向你编辑的这个plist文件,手动添加授权文件很容易漏这一步。
- 打开你的授权文件,确保
验证配置描述文件的有效性
- 找到本地的配置描述文件:前往
~/Library/MobileDevice/Provisioning Profiles文件夹,找到对应你的项目的描述文件,右键选择「显示包内容」,打开embedded.mobileprovision文件 - 在文件里搜索
com.apple.developer.contacts.notes,确认这个权限存在且值为true。如果找不到,说明描述文件没包含这个权限,去Apple Developer网站重新下载最新的描述文件,再拖进Xcode或者通过Preferences > Accounts > 你的账号 > Download Manual Profiles刷新。
- 找到本地的配置描述文件:前往
清理Xcode缓存与构建文件
- 用快捷键
Cmd+Shift+K清理构建文件夹,再按Cmd+Option+Shift+K清理Xcode全局缓存 - 完全退出Xcode后重启,有时候缓存会导致配置无法及时生效。
- 用快捷键
检查签名配置的一致性
- 确保Target和Project层级的
Signing设置都选择了「Manual Signing」,且配置描述文件是你包含权限的那一个,Project的配置可能会覆盖Target的设置 - 核对项目的Bundle ID和描述文件里的Bundle ID完全一致,哪怕大小写或者后缀差一点都会导致权限不生效。
- 确保Target和Project层级的
如果以上步骤都试过还是出现权限缺失提示,那确实有可能是Xcode 11.3.1的版本Bug:
- 可以临时切换到「Automatic Signing」试试,Xcode会自动生成包含权限的配置文件,有时候能绕过手动签名的配置冲突
- 考虑升级到Xcode 11.4(同大版本的小更新,兼容性较好),后续版本修复了不少签名和权限识别的问题。
内容的提问来源于stack exchange,提问作者Coder949
相关产品推荐
相关产品推荐

