Sto lavorando all'aggiornamento di iPhone application con una modifica minore nella sua configurazione predefinita. È passato del tempo da quando l'ho creato per ultimo, quindi ho aggiornato Xcode alla 4.2 e incluso il supporto per iOS 5 nelle ultime build.Portachiavi iOS SecItemAdd restituisce -25243
Quando vado a testare sul dispositivo, ottengo il seguente errore di asserzione:
2011-11-02 20:57:18.869 RoseBandwidth[903:707] Tried to add item, got result: -25243
2011-11-02 20:57:18.870 RoseBandwidth[903:707] *** Assertion failure in -[KeychainItemWrapper writeToKeychain], /Users/tim/code/RoseBandwidth/Classes/KeychainItemWrapper.m:312
2011-11-02 20:57:18.872 RoseBandwidth[903:707] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Couldn't add the Keychain Item.'
sto usando l'implementazione della classe KeychainItemWrapper
da Apple di GenericKeychain project. Vale la pena notare che questo errore si manifesta solo sul dispositivo, non nel simulatore (e sono a conoscenza delle differenze di restrizione dei gruppi di accesso tra le piattaforme, ma di solito ho pensato che ciò causasse problemi al simulatore, non all'hardware vero e proprio).
Perché dovrei ricevere questo errore? Non ho toccato nulla di rilevante per le parti relative all'applicativo del portachiavi; memorizza e recupera i dati esattamente come un tempo.
Se ti potessi invitare più di una volta, la risposta era assolutamente magica. Ho scoperto che ho perso il mio file di diritti da qualche parte lungo la strada, quindi riattivarli (e giocare con i profili di provisioning per un po ') ha risolto il problema. Grazie! – Tim