NSUserDefaults не будет записывать значения, регистрирует непостоянные настройки домена - PullRequest
2 голосов
/ 08 апреля 2019

У меня есть приложение Mac, где я использую NSUserDefaults, чтобы сохранить идентификатор для установки для использования в аналитике.У меня есть такой код:

-(NSString *)getInstallId
{
  NSString *settingsKey = @"install_id_key";
NSString *result = [[NSUserDefaults standardUserDefaults] objectForKey:settingsKey];
if (result.length == 0)
{
    result = [[NSUUID UUID] UUIDString];
    [[NSUserDefaults standardUserDefaults] setObject:result forKey:settingsKey];
}

return result;
}

Но, по крайней мере, в некоторых системах High Sierra каждый раз возвращается другое значение.Выполнение этого в отладке показывает, что [objectForKey:settingsKey] возвращает nil, даже если я пытаюсь вызвать его сразу после установки.Я пытался позвонить synchronize, хотя это не необходимо .

Я также вижу сообщение в журнале, как это:

2019-04-08 11: 35: 26.249938-0700 MyApp [11283: 59125] [User Defaults] пытается установить 8E548BCF-97E0-431F-B36A-B06913424010 для ключа в install_id_key в домене непостоянных предпочтений CFPrefsPlistSource <0x6080000e0000: com.myapp.MyApp, Пользователь: kCFPreferencesCurrentUser, ByHost: Нет, Контейнер: (null), Требуется обновление содержимого: Да) </p>

Google не показывает ничего полезного для этого сообщения об ошибке, кроме как "Я перезапустил, и это было исправлено "результаты.

Что здесь происходит?Должен ли я беспокоиться об этом где-нибудь на производстве?Это происходит в заархивированных и отладочных сборках.

При включении ведения журнала из системы по умолчанию выдается несколько сообщений об ошибках:

отклонение чтения {com.olivetree.BibleReaderMac, ianfallon, kCFPreferencesAnyHost, /Users/username/Library/Containers/com.olivetree.BibleReaderMac/Data, managed: 0} из процесса 8028, поскольку для доступа к предпочтениям вне контейнера приложения требуется доступ для чтения пользовательских предпочтений или доступа к песочнице данных чтения файла

Не удалось прочитать значения в CFPrefsPlistSource <0x60c0000f3600> (Домен: com.olivetree.BibleReaderMac, Пользователь: kCFPreferencesCurrentUser, ByHost: Нет, Контейнер: (ноль), Требуется обновить содержимое: Да): доступ к настройкам за пределамиКонтейнеру приложения требуется доступ в изолированную программную среду для чтения пользовательских настроек или доступа к файлам для чтения данных, отсоединение от cfprefsd

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...