Проблемы с разрешением приложения в OS X при распространении приложения - PullRequest
1 голос
/ 08 августа 2011

мы создаем приложение для OS X, однако, когда .app копируется на другой MAC, у нас возникают проблемы с чтением и записью файлов

на одном MAC, все отлично работает с самого начала.другой не будет записывать определенные файлы, а другой 2mac не будет записывать определенные разные файлы

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

как распространять приложение MAC, чтобы таких проблем не было?таким образом, все файлы могут быть прочитаны и записаны текущим пользователем

должен ли быть какой-либо знак авторизации или кода, или что-то в этом роде.отличается в этой форме, кроме обычного кода?

спасибо

Ответы [ 2 ]

2 голосов
/ 08 августа 2011

Похоже, ваше приложение пытается записать файлы в свой собственный пакет приложений. Правильное решение здесь: НЕ ДЕЛАЙТЕ ЭТОГО ! Единственный раз, когда ваш пакет приложений должен быть записан, это когда он установлен или обновлен.

Файлы, в которые приложение должно записывать, должны храниться в домашней папке пользователя, обычно в ~ / Library. См. эту заметку в документации разработчика Apple .

  • Файлы настроек и настроек в ~ / Library / Preferences / .plist; используйте NSUserDefaults .
  • Данные, которыми приложение управляет для пользователя, в ~ / Library / Application Support / (в документах сказано, что используется пакет, но все, включая Apple, используют вместо этого имя приложения).
  • Кэширование файлов в ~ / Library / Caches / .
  • Temp файлы, используйте NSTevenDirectory
  • Если вам нужно обмениваться настройками и файлами между пользователями, это, как правило, должно быть в / Library / Application Support / , за исключением того, что вам вообще не следует этого делать.
0 голосов
/ 08 августа 2011

В прошлом я всегда использовал PackageMaker для создания установщиков. Инсталляционный пакет может проходить аутентификацию с привилегиями root, поэтому вы можете устанавливать разрешения после установки. У меня его сейчас нет, но если вы посмотрите вокруг, вы сможете увидеть строку сценария Post-Installer. Напишите сценарий оболочки, который вручную устанавливает разрешения для каждого файла, о котором идет речь, и затем пакет выполнит этот сценарий после завершения установки.

Вы можете найти PackageMaker в / Developer / Applications / Utilities / PackageMaker

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