Я создал расширение редактора исходного кода 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 читать рассматриваемый файл? Я думал об использовании разрешения «Файл, выбранный пользователем», но я не понимаю, как это будет работать с расширением, у которого нет пользовательского интерфейса.
Любые другие мысли о том, как заставить что-то подобное работать?