2011-12-23 4 views
1

У меня есть приложение Mac в App Store, и я хочу использовать песочницу, прежде чем она станет обязательным требованием. Я столкнулся с двумя вопросами и надеялся опубликовать здесь некоторое представление о лучшей практике в следующих ситуациях:Вопросы по песочнице OS X

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

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

ответ

1

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

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

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

0

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

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

Смежные вопросы