zoukankan      html  css  js  c++  java
  • -25299 reason: 'Couldn't add the Keychain Item.'

    今天在用苹果官方demo 提供的KeychainItemWrapper类时遇到-25299  reason: 'Couldn't add the Keychain Item.'错误,再4s上可以正常运行,但6上却崩溃

    崩溃位置

     result = SecItemAdd((CFDictionaryRef)[self dictionaryToSecItemFormat:keychainItemData], NULL);

    NSAssert( result == noErr, @"Couldn't add the Keychain Item." );

    我调用的方法

     

      CFUUIDRef uuidRef = CFUUIDCreate(kCFAllocatorDefault);

            strUUID = (NSString *)CFBridgingRelease(CFUUIDCreateString (kCFAllocatorDefault,uuidRef));

            [keychainItem setObject:strUUID forKey:(__bridge id)kSecValueData];

    通过看国外的文章知道了方法(http://stackoverflow.com/questions/4309110/error-saving-in-the-keychain-with-iphone-sdk

    修改方法: 加上下面这行代码就能正常运行

    [keychainItem setObject:@"MY_APP_CREDENTIALS" forKey:(id)kSecAttrService];

    最后修改成代码为:

            [keychainItem setObject:@"MY_APP_CREDENTIALS" forKey:(id)kSecAttrService];

                CFUUIDRef uuidRef = CFUUIDCreate(kCFAllocatorDefault);

            strUUID = (NSString *)CFBridgingRelease(CFUUIDCreateString (kCFAllocatorDefault,uuidRef));

            [keychainItem setObject:strUUID forKey:(__bridge id)kSecValueData];

    原因:

      KeyChain内部以kSecAttrAccount 与kSecAttrService作为唯一钥匙串标识,两个都必须设置才行;

            

  • 相关阅读:
    html添加注释怎么弄?
    编程语言本身是怎么开发出来的?
    一句话说明Facbook React证书的矛盾点
    XAMPP是什么?
    HTTP解析
    version control
    函数式编程语言
    Servlet之Filter
    Build tool
    container和injection
  • 原文地址:https://www.cnblogs.com/lingzeng/p/4844029.html
Copyright © 2011-2022 走看看