OS X песочница вопросы - PullRequest
       1

OS X песочница вопросы

1 голос
/ 23 декабря 2011

У меня есть приложение Mac в App Store, и я собираюсь принять «песочницу», прежде чем это станет обязательным требованием.Я столкнулся с двумя проблемами и надеялся опубликовать здесь для некоторого понимания передового опыта в следующих ситуациях:

  • В моем приложении я использую NSOpenPanel, чтобы предложить пользователю загрузить собственный формат файла,После загрузки файла мое приложение анализирует его и собирает список NSURL в локальные файлы.Затем эти локальные файлы передаются методу initWithContentsOfURL: NSImage.К сожалению, загрузка файлов изображений приводит к тому, что песочница отменяет действие.Я понимаю, что это происходит потому, что пользователь дал моему приложению явное разрешение открывать файл, выбранный NSOpenPanel, но не для файлов, на которые есть ссылки в моем проприетарном формате.Как я могу справиться с этой (предположительно довольно распространенной) ситуацией?
  • У меня есть исполняемый файл Unix, содержащийся в моем комплекте приложений, который я хотел бы выполнить с помощью NSTask.Является ли это законным в песочнице, учитывая, что сценарий содержится в моем комплекте?

Если кто-то может прояснить вышеупомянутые пункты, это будет оценено.

Ответы [ 2 ]

1 голос
/ 23 декабря 2011

1) Насколько я понимаю, объект NSURL содержит разрешения, необходимые для повторного доступа к файлам позже, поэтому, если вы используете жестко закодированные пути, вы можете заменить их на заархивированные объекты NSURL.Это также предполагает, что пользователь выбрал эти филиалы в NSOpenPanel на более раннем этапе.

2) Вы можете запустить NSTask, но он наследует разрешения вашего основного приложения.

Надеемся, что другие могут перезвонитьв с дополнительной информацией.Я нашел Mac Developer Boards , в частности форумы «Sandboxing для приложений», которые могут оказаться полезными, так как сотрудники Apple часто заходят. До сих пор я считаю, что песочница - бесполезный беспорядок.

0 голосов
/ 24 декабря 2011

Сначала просто: вы можете запустить помощника с помощью NSTask, и он унаследует «песочницу» вашего приложения.

Эти URL: не просто / надежно / вообще. Существует способ сохранить NSURL в файлы, к которым у вас есть доступ, таким образом, что при последующем запуске приложения и их повторной загрузке и восстановлении доступа однако считается хрупким и не рекомендуется. Прочитайте форумы разработчиков Apple, и это признанная Apple проблема, над которой они «работают»; учитывая, что использование хрупкого решения, вероятно, не стоит усилий - поищите хрупкое решение на форумах разработчиков, если вы действительно хотите взломать что-то, что сейчас работает.

...