启用钥匙串共享会改变您的 AppID 吗?
Posted
技术标签:
【中文标题】启用钥匙串共享会改变您的 AppID 吗?【英文标题】:Does enabling Keychain Sharing alter your AppID? 【发布时间】:2014-09-04 20:14:08 【问题描述】:我注意到当我在 Xcode 中为我的 ios 应用程序启用钥匙串共享时,Xcode 说它将“将钥匙串共享权利添加到您的应用程序 ID”,并且它似乎确实连接到我的帐户,因为我收到一个询问哪个开发者帐户的弹出窗口使用。但是,在开发门户上,我的任何应用程序 ID 都没有明显的变化,而且我的配置文件也不会像有时在我更改应用程序的权利时那样失效。钥匙串共享也不是在 App ID 中启用/禁用的可见选项。
有谁知道 Xcode 在幕后做什么?对权利文件的本地更改是显而易见的,但我想了解它的 App ID 方面。
【问题讨论】:
【参考方案1】:iOS 中的每个钥匙串项都包含一个称为钥匙串访问组的属性。 iOS 应用程序只能访问它有权访问的那些钥匙串项目。此权限来自应用程序签名时标记的代码签名权利。
默认情况下,应用只能访问钥匙串访问组与应用程序标识符代码签名权利相匹配的钥匙串项。但是,如果开发人员想要在他们的应用程序之间共享钥匙串项,他们可以添加自定义钥匙串访问组代码签名权利,以指定应用程序可以访问的钥匙串访问组数组。
通常在不设置访问组属性 kSecAttrAccessGroup 的情况下创建钥匙串项。在这种情况下,钥匙串服务会自动将该属性设置为默认值。如果没有 keychain-access-groups 权利,则默认为 application-identifier 权利的值。否则,默认值为 keychain-access-groups 权利中第一个数组元素的值。
当使用目标设置面板上的 Xcode Capabilities 编辑器打开钥匙串共享时,Xcode 将在构建时将所需的 App ID 前缀(团队 ID)添加到任何列出的钥匙串组项目的前面。您可以在构建设置 $(AppIdentifierPrefix) 所代表的生成的权利文件中看到这一点。
【讨论】:
但是,如果有的话,开发者门户中的 APP ID 会发生什么变化?权利文件中的值会发生什么变化?它们是否像 iCloud 容器一样与 APPID 相关联?以上是关于启用钥匙串共享会改变您的 AppID 吗?的主要内容,如果未能解决你的问题,请参考以下文章