ios - 启用钥匙串(keychain)共享会改变您的 AppID 吗?

标签 ios

我注意到当我在 Xcode 中为我的 iOS 应用程序启用钥匙串(keychain)共享时,Xcode 说它将“将钥匙串(keychain)共享权利添加到您的应用程序 ID”,并且它似乎确实连接到我的帐户,因为我收到一个弹出窗口询问哪个开发者帐户使用。但是,在开发门户上,我的任何应用程序 ID 都没有明显的变化,而且我的配置文件也没有像有时更改应用程序的权利时那样失效。 Keychain Sharing 也不是可在 App ID 中启用/禁用的可见选项。

有谁知道 Xcode 在幕后做了什么?授权文件的本地更改很明显,但我想了解它的 App ID 方面。

最佳答案

iOS 中的每个钥匙串(keychain)项都包含一个称为钥匙串(keychain)访问组的属性。 iOS 应用程序只能访问它有权访问的那些钥匙串(keychain)项目。此权限来自签名时标记到应用中的代码签名权利。

默认情况下,应用程序只能访问钥匙串(keychain)访问组与应用程序标识符代码签名权利相匹配的钥匙串(keychain)项目。但是,如果开发人员想要在他们的应用程序之间共享钥匙串(keychain)项,他们可以添加自定义钥匙串(keychain)访问组代码签名授权,指定应用程序可以访问的一组钥匙串(keychain)访问组。

通常情况下,一个人创建钥匙串(keychain)项时不设置访问组属性 kSecAttrAccessGroup。在这种情况下,Keychain Services 会自动将该属性设置为默认值。如果没有 keychain-access-groups 授权,则默认为应用程序标识符授权的值。否则默认值是 keychain-access-groups 权利中第一个数组元素的值。

当使用目标设置面板上的 Xcode 功能编辑器打开钥匙串(keychain)共享时,Xcode 会在构建时将所需的 App ID 前缀(团队 ID)添加到任何列出的钥匙串(keychain)组项目的前面。您可以在build设置 $(AppIdentifierPrefix) 表示的生成的权利文件中看到这一点。

关于ios - 启用钥匙串(keychain)共享会改变您的 AppID 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25674244/

相关文章:

objective-c - SDWebImage - setImageWithURL加载完成后执行任务的方法

android - Paypal MPL IOS SDK "The system is currently unavailable. Please try again later"

ios - Xcode 11.4找到无效的调试信息,调试信息将被剥离

ios - 清除 secureTextEntry = YES 的 UITextField 时是否触发事件?

iphone - 如何在 iOS 中获取保存的图像文件路径

iphone - 对将 Class 方法与具有委托(delegate)的对象一起使用感到困惑

objective-c - 如果我没有使用 Core Data,我该如何使用 iCloud Sync?

ios - drawRect : 中不同颜色的不同行为

ios - 如何让iOS VoiceOver读取View和 subview 作为一个整体

ios - 将 swift 代码移植到 Objective-C 项目后使用未声明的标识符