Как читать из папки в домашнем каталоге пользователя из расширения редактора исходного кода Xcode?

Я создал расширение редактора исходного кода Xcode. Например, я хотел бы создать команду linting. Существующий файл lint пользователя находится в таком месте, как /Users/Tim/CalculatorApp/swiftlint.yml.

Если я попытаюсь использовать try! String(contentsOfFile: "/Users/Tim/CalculatorApp/swiftlint.yml"), я получаю сообщение об ошибке:

Фатальная ошибка: «попробуй!» выражение неожиданно вызвало ошибку: Error Domain=NSCocoaErrorDomain Code=257 Не удалось открыть файл «.swiftlint.yml», поскольку у вас нет разрешения на его просмотр.

Скорее всего, это связано с тем, что расширение работает в песочнице и не имеет разрешения на чтение файлов в домашнем каталоге пользователя. Я попытался удалить песочницу из цели расширения, но тогда расширение вообще не загружается.

Я получаю сообщение об ошибке:

Не удалось подключиться к pid: "3623"

присоединение не удалось (не разрешено присоединение к процессу. Посмотрите в сообщениях консоли (Console.app), рядом с записями отладочного сервера, когда присоединение не удалось. Подсистема, которая отказала в разрешении на присоединение, вероятно, зарегистрирует информативное сообщение о том, почему оно было отклонено. )

Если я повторно добавлю песочницу приложения, очистю проект, а затем снова запущу, я больше не получаю эту ошибку. Это наводит меня на мысль, что расширения Xcode, возможно, необходимо запускать в режиме песочницы приложения.

Есть ли способ запустить расширение Xcode без режима песочницы приложения?

Существуют ли какие-либо другие обходные пути, позволяющие расширению Xcode читать рассматриваемый файл? Я думал об использовании разрешения «Файл, выбранный пользователем», но я не понимаю, как это будет работать с расширением, у которого нет пользовательского интерфейса.

Любые другие мысли о том, как заставить что-то подобное работать?


person Senseful    schedule 24.04.2021    source источник