使用 KeyChainItemWrapper 添加钥匙串项目时使用的正确标识符是什么?
What is the proper identifier to use when adding a keychain item using KeyChainItemWrapper?
我不太明白标识符是什么,也不太明白它是如何使用的。
随意吗?是我的应用名称倒过来了吗?
下面我使用“测试”但它应该是:“com.mydomain.myApp.test”吗?
或者我的应用程序包标识符:“com.Soundpaper.soundpaper.fakeID123”?
或者什么?
谢谢。
@property (nonatomic, strong) KeychainItemWrapper *myChain;
. . .
if (myChain == nil)
{
// first question: what identifier should I use?
myChain = [[KeychainItemWrapper alloc] initWithIdentifier:@"test" accessGroup:nil];
}
KeychainItemWrapper 是一个包装器 class,用于对“典型”开发人员隐藏所有 CFRef 转换内容。
因此,Security 框架中 Keychain 服务的所有“规则”都成立。
因此,每当您访问钥匙串项目时,框架都会自动将您应用的 bundle id“添加”到该项目,以确保您只能读取自己的项目,参见例如SecItemAdd discussion.
因此,identifier
完全是任意的,可能只会在您自己的应用程序内引发冲突,而不会与其他人发生冲突。
备注:如果您指定accessGroup
,您可以在应用程序之间共享密钥,参见Sharing Access to Keychain Items Among a Collection of Apps
我不太明白标识符是什么,也不太明白它是如何使用的。
随意吗?是我的应用名称倒过来了吗? 下面我使用“测试”但它应该是:“com.mydomain.myApp.test”吗? 或者我的应用程序包标识符:“com.Soundpaper.soundpaper.fakeID123”? 或者什么?
谢谢。
@property (nonatomic, strong) KeychainItemWrapper *myChain;
. . .
if (myChain == nil)
{
// first question: what identifier should I use?
myChain = [[KeychainItemWrapper alloc] initWithIdentifier:@"test" accessGroup:nil];
}
KeychainItemWrapper 是一个包装器 class,用于对“典型”开发人员隐藏所有 CFRef 转换内容。 因此,Security 框架中 Keychain 服务的所有“规则”都成立。
因此,每当您访问钥匙串项目时,框架都会自动将您应用的 bundle id“添加”到该项目,以确保您只能读取自己的项目,参见例如SecItemAdd discussion.
因此,identifier
完全是任意的,可能只会在您自己的应用程序内引发冲突,而不会与其他人发生冲突。
备注:如果您指定accessGroup
,您可以在应用程序之间共享密钥,参见Sharing Access to Keychain Items Among a Collection of Apps