2015-12-18 20 views
8

Si verifica un problema durante l'istanziazione di CBCentralManager. Ricevo un messaggio di "duplicazione" durante il monitoraggio dalla console iOS (non viene visualizzato nella console XCode).Problema DUPLICATO per il mantenimento e il ripristino dello stato Bluetooth iOS -25299

ho provato ad aggiornare il nome della coda e la chiave restauro id senza successo. Questo è quanto ho un'istanza di mio Direttore Centrale:

CBCentralManager *central = [[CBCentralManager alloc] initWithDelegate: self 
    queue: dispatch_queue_create("com.mydomain.myapp.scanner", NULL) 
    options: @{ 
     CBCentralManagerOptionRestoreIdentifierKey: @"hexa-string-comes-here" 
    }]; 

e quelli sono gli errori che sto ottenendo:

CKLs-iPhone-5S securityd[78] : securityd_xpc_dictionary_handler MyApp[2571] add The operation couldn’t be completed. (OSStatus error -25299 - duplicate item O,genp,E99372E2,L,ck,X2W6M5UYJ9.com.mydomain.myapp,0,acct,svce,v_Data,20151218165347.298588Z,2CAE5650)

CKLs-iPhone-5S MyApp[2571] : SecOSStatusWith error:[-25299] The operation couldn’t be completed. (OSStatus error -25299 - Remote error : The operation couldn‚Äôt be completed. (OSStatus error -25299 - duplicate item O,genp,E99372E2,L,ck,X2W6M5UYJ9.com.mydomain.myapp,0,acct,svce,v_Data,20151218165347.298588Z,2CAE5650))

Tutte le idee?

+1

Che cosa succede quando si nome la coda in modo diverso (ad esempio ' "com.mydomain.myapp.scanner1_fkou3h4t"')? –

+1

Nulla sembra cambiare, @MichaelDorner – marcelosalloum

risposta

1

Se si desidera utilizzare il CBCentralManagerOptionRestoreIdentifierKey, è necessario

  1. implementare il metodo

    // in Objective-C 
    - (void)centralManager:(CBCentralManager *)central willRestoreState:(NSDictionary<NSString *, id> *)dict 
    
    // or in Swift 
    func centralManager(_ central: CBCentralManager, willRestoreState dict: [String : AnyObject]) 
    

    da CBCentralManagerDelegate, e

  2. utilizzare la modalità di sfondo Usa accessori Bluetooth LE configurare in Xcode:

    enter image description here

0

Questo può essere correlato al noto Keychain issue. (Tuttavia, è solo un'ipotesi che si tratti di Keychain proveniente dal registro di sicurezza nella tua app). L'elemento duplicato OSStatus viene visualizzato quando esiste già un elemento registrato con tutti gli attributi forniti insieme all'elemento. Quindi, cosa potrebbe accadere qui:

  1. keychain non è riuscito a eliminare l'ultimo ID di ripristino - l'articolo è rimasto nel portachiavi.
  2. registro per il restauro con lo stesso id
  3. portachiavi cerca di salvare l'oggetto.
  4. restituisce errore elemento duplicato
Problemi correlati