你在 Apple Developer Portal 中看到的 Xcode 的功能和 AppID 功能之间不应该是 1-1 的关系吗?

Posted

技术标签:

【中文标题】你在 Apple Developer Portal 中看到的 Xcode 的功能和 AppID 功能之间不应该是 1-1 的关系吗?【英文标题】:Shouldn’t there be a 1-1 relationship between Xcode’s capabilities and AppID capabilities you see in Apple Developer Portal? 【发布时间】:2020-06-21 10:50:11 【问题描述】:

我正在研究开发门户中的 AppID 功能……

Xcode 的能力和 AppID 的能力不应该是一对一的关系吗? 如果我尝试添加功能,我确实会在 Xcode 中看到钥匙串共享。

但是,我在 Apple 开发人员门户中没有看到 AppID 的这种功能。为什么?

【问题讨论】:

【参考方案1】:

感谢Dave Lyon给了我这个答案:

这很混乱!

在开发门户中,您请求特定权利,但并非所有权利都需要纳入您的个人资料,因此它们不会全部显示。

您在 AppID 的配置文件中看到的每项功能都需要授权。

对于您在 Xcode 中添加的每个功能,情况并非如此。因此,您会在 Xcode 中发现更多功能。其中一些可能需要权利,而另一些可能不需要。

特别是在您的情况下,钥匙串共享不需要权利,因此您在配置应用 ID 时看不到它们。

编辑: 找到docs from Apple

您可以使用 Xcode 的摘要选项卡 [我认为现在使用 Xcode 的“签名和功能”选项卡完成] 设置许多权利 目标编辑器。其他权利需要编辑目标的 权利属性列表文件。最后,一些权利是 继承自用于运行应用的 iOS 配置文件

☝️ 很重要,但也很神秘。这就是为什么 Apple 告诉我们代码签名权利所依赖的非常复杂,并且取决于各种输入

检查构建的二进制文件

调试代码签名权利问题的第一步是 检查二进制文件的实际权利。 Xcode 的流程 设置权利是相当复杂的,它取决于各种 输入,所以从检查输出开始很重要,而不是 只看输入。

要检查二进制文件中的权利,请运行以下命令:

$ codesign -d --entitlements :- NetworkExtensionSample.app

来源:Apple Forums


这个页面也值得一看。它通过权利过程。

https://developer.apple.com/library/archive/technotes/tn2415/_index.html#//apple_ref/doc/uid/DTS40016427-CH1-SOURCES

有很多很好的解释。请务必从里到外阅读。

当配置文件用于代码签名时,Xcode 会将配置文件的相关权利转移到 .app 的生成代码签名中。

在代码签名期间,与应用启用的功能/服务对应的权利从 Xcode 选择为应用签名的配置文件转移到应用的签名。

Entitlement Sources 和 Entitlement Destination 下还有两个部分

特别是在权利目标下:

应用的签名 应用的嵌入式配置文件

这意味着预置配置文件已嵌入,但应用最终可能拥有不同权利。基本上,如果权利是需要通过供应配置文件提供的权利并且您的应用正在使用它,那么您需要在供应配置文件中拥有该权利,否则它会在代码签名时出错。

【讨论】:

另见:developer.apple.com/documentation/xcode/…

以上是关于你在 Apple Developer Portal 中看到的 Xcode 的功能和 AppID 功能之间不应该是 1-1 的关系吗?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法从 Apple Developer Portal 中实际删除设备?

从 Apple Developer Portal 中删除开发者证书

Apple Developer Portal 的身份验证失败!世博会构建时Apple服务错误-1018:ios

在 Apple Developer Portal 中创建 App ID

在 Apple Developer Portal 关闭时在设备上测试应用程序 [关闭]

在不使用 Apple Developer Portal 的情况下将 UDID 添加到配置文件