Xcode 14中多平台应用的权限配置

6

在 Xcode 14 以前创建跨平台应用时,Xcode 会针对每个目标(target)创建一个单独的 Entitlements 文件。而现在,在 Xcode 14 中,默认情况下所有目标都使用同一 Entitlements 文件。

在将 HealthKit 功能添加到 Xcode 14 项目并在 Info.plist 中填写“Privacy - Health Update Usage Description”键字符串后,触发了 HealthKit 授权请求,但用户同意应用程序使用 HealthKit 数据的屏幕未弹出。此外,控制台中还打印出以下错误信息:Health request display failed: Missing application-identifier entitlement.

为解决此问题,我手动编辑了 Entitlements 文件,使其如下所示: Entitlements file

手动向 Entitlements 文件添加 application-identifier 权限可以解决该问题,但由于 macOS 目标也使用相同的 Entitlements 文件,因此 Xcode 在进行 macOS 自动签名时失败,并出现以下错误:

Provisioning profile "Mac Team Provisioning Profile: com.xx.xx" doesn't include the application-identifier entitlement.

这里可以看到在签署和功能中出现的错误:带有错误消息的Signing & Capabilities Xcode屏幕截图

正确的方法是什么?我应该手动创建第二个Entitlements文件并将它们分开吗?如果是这样,应该如何操作?或者还有其他我所忽略的东西吗?

非常感谢任何帮助。


谢谢你记录这个!我遇到了完全相同的问题,直到看到你的帖子才明白错误所在。 - Rog
1个回答

2

在真实设备上测试时,不需要手动编辑权限文件,该错误消失并且 HealthKit 权限请求会适当显示。因此,我相信以上行为只是当前 beta 版本中 Xcode / 模拟器的 bug。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接