Изолированное приложение Mac теряет права доступа к файлам для других приложений

Я разрабатываю приложение, которое в настоящее время находится в песочнице. Оно действует как базовое текстовый редактор. Недавно я хотел проверить, что происходит, когда я открываю файл в своем приложении и в другом приложении одновременно, делаю обновление в одном приложении, а затем вижу обновленное в другом. Я использую Coda или BBEdit в качестве моих альтернативных редакторов. Если я отключу песочницу г - значит этого вопроса не существует. Однако, поскольку с 1 марта приложения должны быть изолированы в песочнице, я бы предпочел реализовать решение, а не ждать и смотреть.

Когда я открываю оба файла и вношу изменения в своем приложении, а затем переключаюсь на другое приложение, изменения отражаются, так что эти редакторы имеют версию, только что сохраненную из моего приложения.Однако, если я выполню обратное сохранение из их приложения, а затем перейду в свое - не будет радости. Без выполнения каких-либо действий консоль сообщает о двух конкретных ошибках: deny file-issue-extension и deny file-write-data . Приложение, похоже, теряет права на редактирование документа, поскольку оно было изменено внешним редактором после того, как документ был открыт в моем приложении. Если я попытаюсь сохранить файл в своем приложении, оно попросит дублировать документ, потому что он потерял доступ к исходному документу. Этого не происходит, потому что эти приложения не были изолированы в песочнице и поэтому имеют разрешения, которых нет у моего приложения. Также не похоже, что вы можете запретить другому приложению вносить изменения, если вы не хотите этого поведения.

В документации на developer.apple.com ничего подобного не упоминается. Я не уверен, что это предполагаемое поведение. Если это так, то я могу просто сказать своему пользователю, что права доступа к документу были потеряны, и ему следует либо сохранить новую версию, либо повторно открыть файл. Если это НЕ предполагаемое поведение, то какой метод в NSDocument API предоставит разрешение на доступ к файлу после его потери? Я предполагаю, что ответ первый, что это предназначено, но может ли кто-нибудь подтвердить и есть ли документация?

32
задан Scott Harwell 12 January 2012 в 22:39
поделиться