我已经在appstore中分发了一个应用程序,通过添加Keychain Entitlement文件来启用 Keychain共享。最初,我想有两个应用程序共享相同的keychain,但后来我只有一个应用程序。虽然在XCode中的常规功能中启用了keychain共享访问,并且在代码签名权利中添加了Entitlement文件,我将 nil 值设置为访问 KeychainItemWrapper 类中的组,如下所示。
KeychainItemWrapper * keychainWrapper = [[KeychainItemWrapper alloc] initWithIdentifier:KEYCHAIN_IDENTIFIER_NAME accessGroup:nil];
在下一个版本中,我删除了 Keychain Entitlement 文件和代码签名权利,因为我认为这是不必要的,但现在应用程序无法访问以前的版本keychain item并返回 null 值。
请在两个版本中解释我这种奇怪的行为 访问组始终设置为nil。
还解释了启用和禁用Keychain的钥匙串结构 共享。
答案 0 :(得分:0)
如果为KeychainBundleIdntifier传递了nil值,那么它将获取共享密钥链的Bundle Identifier值,该值将是keychain entitlements.plist中的共享密钥链标识符