Хранение данных для чтения / записи для всех пользователей в macOS - PullRequest
0 голосов
/ 18 мая 2018

У меня приложение macOS должно быть зарегистрировано для всех пользователей на этом физическом компьютере.В настоящее время я использую nsuserdefaults для хранения регистрационной информации, но это не позволяет другим пользователям машины использовать программное обеспечение, потому что nsuserdefaults зависит от пользователя.

Я изучил использование API CFPreferences:

 CFPreferencesSetValue(key,
                      value,
                      kCFPreferencesCurrentApplication,
                      kCFPreferencesAnyUser,
                      kCFPreferencesCurrentHost);

Но для этого требуются привилегии root, которые я не хочу требовать для моего приложения.

Каков наилучший способ хранения регистрационной информации для всех пользователей компьютера без необходимости получения привилегий root?

1 Ответ

0 голосов
/ 21 мая 2018

Что я делаю, так это создаю папку в /Library/Application Support, в которую каждый может написать в сценарии postinstall в моем пакете установщика.Тогда приложение может делать в этой папке все, что угодно, и фактически, как и вы, я в основном использую его для хранения регистрационной информации.

Папка должна называться в качестве идентификатора пакета вашего приложения, а пакет установщика должен бытьустановите для запуска с правами root, чтобы postinstall мог сначала создать папку.

Если у вас еще нет пакета установщика, вам придется его создать.Для этого я рекомендую Пакеты .Избегайте инструмента Apple Package Maker - это ужасно.

...