В настоящее время мы испытываем следующую странную проблему с нашим iPhone-приложением. Как гласит название, NSUserDefaults
теряет наши пользовательские ключи и значения, когда телефон перезагружается, но не разблокирован, и это происходит по очень специфическому сценарию.
Контекст:
-
Мы используем
NSUserDefaults
в приложении для хранения пользовательских данных (например, имя пользователя). -
В нашем приложении включено разрешение в фоновом режиме.
-
Мы испытываем эту проблему только при распределении по воздуху или через Testflight. Если я перетащил .ipa(то же, что был распределен по воздуху) в свой телефон, используя Xcode, я не испытываю этой проблемы.
Ситуация: пользователь устанавливает приложение, регистрируется и имя пользователя сохраняется на NSUserDefaults
успешно. Затем пользователь выключает их устройство и включает его обратно и позволяет телефону сидеть в течение некоторого времени, прежде чем разблокировать экран.
Проблема: если за это время произошло значительное изменение местоположения, приложение переходит в фоновом режиме, но NSUserDefaults
пуст (у него есть только некоторые клавиши из яблока, но ни один из наших пользовательских ключей). Затем NSUserDefaults
никогда не восстанавливает эти ключи независимо от того, что вы делаете (например, если вы разблокируете свой телефон и откройте приложение, вы увидите, что ключи все еще отсутствуют).
Любая помощь или идея будут по достоинству оценены:)