Каталог общего доступа к сценариям приложения между приложением Mac и расширением + группа приложений

Я буду запускать предоставленные пользователем сценарии через приложение Mac и расширение приложения. Приложение и расширение принадлежат к одной группе приложений и по отдельности имеют правильные права для запуска сценариев.

Приложение для Mac находится в песочнице. Согласно Apple, любые сценарии должны находиться в каталоге Applications Scripts: . applicationScriptsDirectory / NSApplicationScriptsDirectory,

Класс NSUserAppleScriptTask предназначен для запуска сценариев AppleScript из вашего приложения. Он предназначен для выполнения пользовательских сценариев и будет выполнять их вне изолированной программной среды приложения, если таковые имеются.

Если приложение находится в "песочнице", сценарий должен находиться в NSApplicationScriptsDirectory папка. Приложение из песочницы может читать, но не записывать в эту папку.

https://developer.apple.com/documentation/foundation/nsuserapplescripttask

Проблема, с которой я сталкиваюсь, заключается в том, что Основное приложение и Расширение приложения разрешают различные NSApplicationScriptsDirectories:

let applicationScripts = try! FileManager.default.url(for: .applicationScriptsDirectory, in: .userDomainMask, appropriateFor: nil, create: true)

Разные каталоги:

- ~/Library/Application Scripts/com.company.MainApp
- ~/Library/Application Scripts/com.company.MainAppFinderSync

Я хочу запускать одинаковые сценарии как из приложения, так и из расширения. Он работает для запуска сценариев из собственного каталога Application Scripts каждого компонента, но сценарии не запускаются, если они находятся в каталоге другого компонента.

Не идеально поддерживать синхронизированную структуру каталогов с соответствующими сценариями в обоих местах. Также сложно убедить пользователя разместить сценарии в правильном месте, поскольку руководство по настройкам основного приложения не может открыть каталог сценариев расширения.

Группы приложений решают эту проблему для других общих сценариев приложений / расширений, таких как совместное использование данных через NSUserDefaults:

После включения групп приложений расширение приложения и содержащее его приложение могут использовать API NSUserDefaults для совместного доступа к пользовательским настройкам.

https://developer.apple.com/library/archive/documentation/General/Conceptual/ExtensibilityPG/ExtensionScenarios.html

Есть ли возможность совместно использовать папку "Сценарий приложений" между приложением и расширением, которые принадлежат к одной группе приложений?

0 ответов

Другие вопросы по тегам