Ответ 1
ОК, так что я наконец решил это.
В конце концов я разработал пользователей, у которых были проблемы, установил код блокировки на свой телефон. Если телефон был заблокирован, система keychain возвращала эту ошибку -25308.
Если вам когда-либо понадобится доступ к цепочке ключей, когда приложение активно на площадке, вы никогда не увидите эту проблему, но если вам нужно продолжить обработку, когда телефон заблокирован или приложение находится в фоновом режиме, см. его.
В другом месте я бы прочитал, что атрибут доступа по умолчанию для системы kechain - kSecAttrAccessibleAlways - но я думаю, что это устарело. Кажется, что атрибут доступа по умолчанию для системы keychain таков, что, когда телефон заблокирован с помощью пин-кода, элементы недоступны.
Исправление для этого - изменить код SFHFKeychainUtils, чтобы установить конкретный атрибут kSecAttrAccessible в элементах keychain, которыми он управляет (чего не выполнял исходный код), предположительно, поскольку он предварительно дал эти атрибуты).
В этом wordpress обновленная версия кода SFHFKeychainUtils есть исправления в нем - найдите kSecAttrAccessible, чтобы увидеть, где они добавили доступный код атрибута.
Надеюсь, что это поможет кому-то еще запутаться в этом...