上传应用至App Store报错:provisioning profile未包含NSLocationAlwaysUsageDescription
解决Archive报错:Provisioning Profile未包含位置权限描述
嘿,这个问题我之前帮好几个开发者搞定过,核心是你的App ID权限配置和发布版Provisioning Profile没同步更新导致的,跟着下面的步骤一步步来就行:
1. 给你的App ID开启位置服务权限
登录Apple Developer后台后,按这个路径操作:
- 进入「Certificates, Identifiers & Profiles」板块
- 找到「Identifiers」栏目,定位到你项目对应的App ID(就是和你Bundle ID一致的那个)
- 点击进入编辑页面,拉到「Capabilities」区域,找到「Location Services」
- 一定要勾选「Always Allow」(如果你的App也用到了When In Use权限,也可以一起勾上)
- 确认后保存修改
2. 重新生成发布版Provisioning Profile
权限开了之后,得让Provisioning Profile同步这个配置:
- 回到「Certificates, Identifiers & Profiles」,进入「Profiles」栏目
- 找到你的发布版(App Store类型)Provisioning Profile,点击进去
- 右上角点「Edit」,然后直接点「Generate」按钮重新生成
- 下载新生成的Profile,双击导入到Xcode里
3. 在Xcode中确认配置到位
打开你的项目,做最后检查:
- 切换到「Signing & Capabilities」标签页,确保选中的是**Release(发布)**配置
- 检查「Provisioning Profile」是否已经自动选中了你刚重新生成的那个(如果没自动选,手动选一下)
- 再确认Info.plist里的
NSLocationAlwaysUsageDescription和NSLocationWhenInUseUsageDescription都已经正确添加,而且描述要清晰(毕竟Apple审核会看这个,得让用户知道为什么需要这个权限)
4. 重新尝试Archive
现在再去执行「Product > Archive」,这个报错应该就消失啦~
补充一句:Info.plist里的描述是给用户看的,而App ID的权限配置是告诉Apple你的App需要用到哪些系统服务,两者必须匹配,不然Provisioning Profile就不会包含对应的权限信息,自然就会报错啦。
内容的提问来源于stack exchange,提问作者Amanite Laurine
相关产品推荐
相关产品推荐

