Проблема с NSWorkspace.shared.openApplication в Swift под BigSur

#swift

#swift

Вопрос:

Я пытаюсь запустить приложение предварительного просмотра из своего Swift-приложения.
Я думаю, что это работало так до обновления до BigSur (к сожалению, я не могу протестировать его в предыдущей ОС).

Приложение должно иметь возможность отображать любой файл в файловой системе с помощью приложения предварительного просмотра.

Что я пробовал:

  • удалена изолированная среда из целевых возможностей
  • добавлены документы iCloud
  • добавлено com.apple.security.temporary-исключение.files.absolute-path.read-write со значением «/» для прав доступа.
 func openPreviewApp(path : String)
{
  let url = NSURL(fileURLWithPath: "/System/Applications/Preview.app", isDirectory: true) as URL
  let configuration = NSWorkspace.OpenConfiguration()
  configuration.arguments = [path]
  NSWorkspace.shared.openApplication(at: url,
                                     configuration: configuration,
                                     completionHandler: nil)

}
 

Функция открывает приложение предварительного просмотра, но не файл, указанный в path — вместо этого отображается диалоговое окно выбора файла.

открыть -предварительный просмотр ЭТОГО ПУТИ в терминале работает нормально.

Есть идеи?

Комментарии:

1. Если вы предполагаете, что вам разрешен доступ к любому файлу в любом месте, вы ошибаетесь. Я устал объяснять причину снова и снова.

2. Спасибо за подсказку @ElTomato. Я удалил изолированную среду из целевых возможностей и добавил документы iCloud для этих папок. Этого, похоже, недостаточно. Мое приложение хочет отобразить любой файл в файловой системе (с помощью приложения предварительного просмотра) — как я могу предоставить эту привилегию?