Tôi đang làm việc để cập nhật một iPhone application với một thay đổi nhỏ trong cấu hình mặc định của nó. Đã lâu rồi tôi mới xây dựng nó, và vì vậy tôi đã nâng cấp Xcode lên 4.2 và hỗ trợ iOS 5 trong các bản dựng mới nhất.Keychain iOS SecItemAdd trả về -25243
Khi tôi đi để thử nghiệm trên các thiết bị, tôi nhận được lỗi khẳng định sau đây:
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.'
Tôi đang sử dụng thực hiện các lớp KeychainItemWrapper
từ Apple GenericKeychain project. Cần lưu ý rằng lỗi này chỉ hiển thị trên thiết bị chứ không phải trong Trình mô phỏng (và tôi biết về sự khác biệt về giới hạn giữa các nền tảng truy cập, nhưng thường tôi nghĩ rằng gây ra sự cố trên Trình mô phỏng, chứ không phải phần cứng thực tế).
Tại sao tôi lại bị lỗi này? Tôi đã không chạm vào nội dung nào liên quan đến các phần liên quan đến keychain của ứng dụng; nó lưu trữ và truy xuất dữ liệu chính xác như trước đây.
Tôi upvote bạn nhiều hơn một lần nếu tôi có thể - câu trả lời đó là hết sức khéo léo. Hóa ra tôi mất tập tin quyền lợi của tôi ở đâu đó trên đường đi, vì vậy kích hoạt lại chúng (và chơi với các cấu hình cung cấp trong một thời gian) đã khắc phục vấn đề này. Cảm ơn! – Tim