iOS蓝牙状态保存和恢复';s重复发行-25299

iOS蓝牙状态保存和恢复';s重复发行-25299,ios,bluetooth,duplicates,core-bluetooth,state-restoration,Ios,Bluetooth,Duplicates,Core Bluetooth,State Restoration,我在实例化CBCentralManager时遇到问题。当我从iOS控制台监视它时,会收到一条“重复问题”消息(它不会显示在XCode控制台中) 我尝试更新队列名称和恢复密钥id,但没有成功。以下是我如何实例化我的中央管理器: CBCentralManager *central = [[CBCentralManager alloc] initWithDelegate: self queue: dispatch_queue_create("com.mydomain.myapp.scanne

我在实例化CBCentralManager时遇到问题。当我从iOS控制台监视它时,会收到一条“重复问题”消息(它不会显示在XCode控制台中)

我尝试更新队列名称恢复密钥id,但没有成功。以下是我如何实例化我的中央管理器:

CBCentralManager *central = [[CBCentralManager alloc] initWithDelegate: self 
    queue: dispatch_queue_create("com.mydomain.myapp.scanner", NULL)
    options: @{
        CBCentralManagerOptionRestoreIdentifierKey: @"hexa-string-comes-here"
    }];
这些是我得到的错误:

CKLs-iPhone-5Ssecurityd[78]: securityd\u xpc\u dictionary\u处理程序MyApp[2571]添加操作 无法完成。(OSStatus错误-25299-重复项 O、 genp,E99372E2,L,ck,X2W6M5UYJ9.com.mydomain.myapp,0,acct,svce,v_数据,20151218165347.298588Z,2CAE5650)

CKLs-iPhone-5SMyApp[2571]:SecOSStatusWith 错误:[-25299]无法完成该操作。(OSStatus错误) -25299-远程错误:操作无法完成。(OSStatus错误-25299-重复项 O、 genp,E99372E2,L,ck,X2W6M5UYJ9.com.mydomain.myapp,0,acct,svce,v_数据,20151218165347.298588Z,2CAE5650)

有什么想法吗?

如果你想使用

  • 实施该方法

    // in Objective-C
    - (void)centralManager:(CBCentralManager *)central willRestoreState:(NSDictionary<NSString *, id> *)dict
    
    // or in Swift
    func centralManager(_ central: CBCentralManager, willRestoreState dict: [String : AnyObject])
    
    //在Objective-C中
    -(无效)中央经理:(CBCentralManager*)中央遗嘱恢复财产:(NSDictionary*)遗嘱
    //还是迅速
    func centralManager(central:CBCentralManager,willRestoreState dict:[字符串:AnyObject])
    
    来自,以及

  • 使用背景模式使用Xcode中设置的蓝牙LE附件:


  • 这可能与已知的问题有关。(然而,这只是一个猜测,这是钥匙链来自您的应用程序中的安全日志)。当已经存在一个注册的项目,且该项目随附了所有属性时,将显示OSStatus duplicate item。因此,这里可能发生的情况是:

  • keychain未能删除上次还原id-项保留在keychain中
  • 使用相同的id注册恢复
  • keychain尝试保存项目
  • 它返回重复项错误

  • 当您以不同的方式命名队列时会发生什么情况(例如,
    “com.mydomain.myapp.scanner1\u fkou3h4t”
    )?似乎没有什么变化,@MichaelDorner