Tag: 串keychainitemwrapper

我们如何使用KeychainItemWrapper类(ARC)保存NSArray

我想使用KeychainItemWrapper类保存NSArray 我已经知道我们可以在阅读这个问题后存储NSDictionary 但它不工作 这是我迄今为止所做的 NSArray *myArray = [[NSArray alloc]initWithObjects:@"Hello1",@"Hello2",@"Hello3",@"Hello4", nil]; NSDictionary *myDic = [[NSDictionary alloc]initWithObjectsAndKeys:myArray, @"arrayKey", nil]; NSString *error; NSData *dictionaryRep = [NSPropertyListSerialization dataFromPropertyList:myDic format:NSPropertyListXMLFormat_v1_0 errorDescription:&error]; KeychainItemWrapper *keychain = [[KeychainItemWrapper alloc] initWithIdentifier:@"MyIdentifier" accessGroup:nil]; [keychain setObject:dictionaryRep forKey:(__bridge id)kSecValueData]; 但是在设定对象的最后一行是崩溃。 错误日志: 2013-10-01 12:16:47.590 stackoverflowtry[3883:a0b] -[__NSCFData dataUsingEncoding:]: unrecognized selector sent to instance 0xa1686a0 2013-10-01 12:16:47.593 stackoverflowtry[3883:a0b] *** Terminating […]

iOS7:如何在钥匙串中存储密钥/布尔值

我执行应用内购买,所有产品都是非消耗性的。 我的意图是将bool值存储在每个产品标识符的钥匙串中,然后根据存储的bool值控制Core Data检索。 我的问题是:如何将key / bool值存储到keychain中? PS:我使用KeyChainItemWrapper。

在KeyChain中存储访问令牌和刷新令牌

我想知道如何有效地存储访问令牌,刷新令牌及其在iOS钥匙链中的到期时间。 我所看到的所有例子似乎只存储一个键值组合。 我们如何为一个钥匙串标识符存储多个键值? 如果有更好的方式来存储上面,请让我知道。

KeychainItemWrapper在iOS 9上未加载OSStatus -34018(errSecMissingEntitlement)

我一直在使用KeychainItemWrapper。 但是由于我已经将手机更新到iOS 9,因此出于某种原因它不存储会话ID。 + (BOOL)createKeychainValue:(NSString *)value forIdentifier:(NSString *)identifier { NSMutableDictionary *dictionary = [self setupSearchDirectoryForIdentifier:identifier]; NSData *valueData = [value dataUsingEncoding:NSUTF8StringEncoding]; [dictionary setObject:valueData forKey:(__bridge id)kSecValueData]; // Protect the keychain entry so it's only valid when the device is unlocked at least once. [dictionary setObject:(__bridge id)kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly forKey:(__bridge id)kSecAttrAccessible]; // **THIS LINE OF CODE RETURNS -34108** OSStatus status = […]

iOS的钥匙扣数据丢失iPhone的内存压力?

我正在iPhone 5s上通过debugging器运行iOS应用程序。 我正在使用钥匙串来存储密码(我使用Apple的KeychainItemWrapper示例来存储和检索我的钥匙串项目)。 约99.99%的时间,钥匙链检索完美的作品。 但是,有两种情况我的申请无法获得密码。 例如,一次,我的手机遇到内存压力,我不得不重新启动手机,重新启动应用程序。 应用程序重新启动后,我的应用程序不能再从钥匙串中检索密码。 我不知道这个密码丢失是由这个内存压力造成的吗? 什么其他情况下iOS清除钥匙串数据? 有什么办法来expression这个?

指定访问组时KeychainItemWrapper错误

很长一段时间,我一直使用KeychainItemWrapper的ARC版本成功地读写私人钥匙串项目。 我现在正在将我的iOS应用程序转换为使用共享访问组,以便我的2个共享相同应用程序前缀的应用程序可以访问这些钥匙串项目。 在function部分,我添加了钥匙串组“MYAPPPREFIX.MYSHAREDACCESSNAME” 我正在使用这些行来将我的variables写入钥匙串组: keychainItemWrapper = [[KeychainItemWrapper alloc] initWithIdentifier:key accessGroup:@"MYAPPPREFIX.MYSHAREDACCESSNAME"]; [keychainItemWrapper setObject:value forKey:(__bridge id)(kSecAttrAccount)]; // store the new value in the keychain 如果accessGroup被指定为零 ,那么效果很好。 但是,如果我指定访问组,在debugging器日志中遇到以下错误: 在 – [KeychainItemWrapper writeToKeychain],…. / KeychainItemWrapper.m:329终止应用程序,由于未捕获的exception'NSInternalInconsistencyException',原因:'无法添加钥匙串项目。 由此产生的OSStatus错误代码是-25243,我无法追踪更多的信息。 有什么我可能需要做的,以写入共享访问组?

保存在KeyChainItemWrapper崩溃的密码

Apple在其GenericKeyChain示例代码中提供了KeyChainItemWrapper类。 在这里有一个ARC'ed解决scheme,我试图遵循: 封装存储在iOS上的KeyChain。 包装的使用是这样的: KeychainItemWrapper *keychain = [[KeychainItemWrapper alloc] initWithIdentifier:@"F11-email-auth" accessGroup:nil]; [keychain setObject:[emailTextfield text] forKey:(__bridge id)(kSecMatchEmailAddressIfPresent)]; [keychain setObject:[passwordTextfield text] forKey:(__bridge id)(kSecClassGenericPassword)]; 带有电子邮件文本字段的行被接受。 但是密码的第二行崩溃,出现以下exception。 Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Couldn't add the Keychain Item.' *** First throw call stack: ( 0 CoreFoundation 0x01b445e4 __exceptionPreprocess + 180 1 libobjc.A.dylib 0x018c78b6 objc_exception_throw + 44 2 […]

iOS密钥链写入值导致错误代码-34018

我有一个iOS应用程序,在钥匙串中存储一些敏感信息。 在将值写入钥匙串时,出现错误代码-34018。 我目前正在使用苹果的iOS KeyChainItemWrapper类。 以下两行代码都会收到相同的错误代码。 OSStatus res1 = SecItemCopyMatching((__bridge CFDictionaryRef)genericPasswordQuery, (CFTypeRef *)&attributes); OSStatus res = SecItemUpdate((__bridge CFDictionaryRef)updateItem, (__bridge CFDictionaryRef)tempCheck); 这个问题并不是每次都会发生,但是是间歇性的。 一旦我得到这个错误,我不能再给钥匙串写任何值了。 我已经打印出这样的错误描述: NSError *error = [NSError errorWithDomain:NSOSStatusErrorDomain code:res userInfo:nil]; 这是错误打印出来的东西: Error: Error Domain=NSOSStatusErrorDomain Code=-34018 "The operation couldn't be completed. (OSStatus error -34018.)"