在具有相同团队ID

时间:2016-08-26 05:02:15

标签: ios keychain

我将拥有一个主应用程序和n个子应用程序,希望它们共享钥匙串,

在entitlements.plist中,所有子应用都将拥有自己的包标识符

我用来添加和获取所有应用程序详细信息的keychain-group-access是PM7456S8QE.com.mango.GenericKeychain

在所有应用程序中,keychain-group-access语法 就像

PM7456S8QE.com.mango.app1  PM7456S8QE.com.mango.app2

所有应用程序都将使用相同的证书进行签名,甚至移动配置文件也是相同的

我可以在钥匙串中添加和获取详细信息,因为所有应用都拥有相同的团队ID吗?

1 个答案:

答案 0 :(得分:0)

旧问题,但仍然值得回答:

iOS上的多个应用程序只能共享属于同一应用程序组或同一钥匙串访问组的钥匙串项目。因此,您的应用程序必须具有钥匙串访问组或应用程序组权利,并且每当两个应用程序在此处列出相同的组名时,它们还可以共享钥匙串项。

钥匙串访问组和应用程序组之间的区别在于,钥匙串访问组仅允许应用程序共享钥匙串项目,而其他任何共享。应用程序组还允许您的应用程序共享设置和数据文件,并允许这些应用程序之间的交互,否则该交互是不允许的。

请注意,一个应用程序可以同时属于任意数量的钥匙串访问和应用程序组。唯一的限制是,它所属的所有组必须是同一开发团队的组。无法在开发团队之间共享。

Apple对此主题有很好的文档说明,详细解释了这种共享:

https://developer.apple.com/documentation/security/keychain_services/keychain_items/sharing_access_to_keychain_items_among_a_collection_of_apps

相同的规则适用于macOS,但是macOS还为不可同步的钥匙串项目提供了替代访问控制系统,并且不要求使用iOS引入的新钥匙串API。在这种情况下,其他共享选项可用,但不适用于iOS。