Значки на экране «Домой» лишь запускатели, и всё интересное происходит после нажатия. Команда хранит граф действий, значок открывает «Команды» с этим графом, а действие Set VPN просит систему действовать на именованной конфигурации. Ничего из туннеля не живёт в значке, поэтому та же команда может запускаться и из «Фокуса», автоматизации или триггера нажатия по задней панели. Эта косвенность объясняет и удобство, и сбои. Задайте целевую конфигурацию правильно, и кнопка будет надёжной; оставьте её неоднозначной, и она станет переключателем, который иногда что-то делает.

Что видит действие

Set VPN появилось в «Командах» вместе с iOS 16.4 и работает с теми конфигурациями VPN, которые система ему показывает. Действие принимает конфигурацию и операцию, поэтому проверять стоит две вещи: какую запись вы выбрали и что ей было велено сделать. Запись, которой нет в этом списке, действию недоступна, что бы ни показывал собственный экран настроек клиента.

Именно в этом списке расходятся клиенты третьих сторон. Конфигурация, управляемая системой, отображается как системная, а клиенту с собственным туннелем может понадобиться опубликовать свои действия «Команд» через App Intents, прежде чем что-либо станет скриптуемым. Если подключения вашего провайдера нет, прочитайте документацию провайдера, прежде чем заново строить команду, потому что недостающая часть обычно доступность, а не ошибочное нажатие. Руководства, устанавливающие виджет настроек, описывают другую эпоху, и следование одному из них на нынешнем iPhone даёт долгие поиски вместо кнопки.

Завершение не подключение

Действие передаёт запрос системе и возвращается. Аутентификация может всё ещё ждать запроса, а подключение может всё ещё договариваться, когда команда сообщает об успехе. Единственное надёжное подтверждение ресурс, который вам действительно нужен, открытый после того, как владеющий клиент покажет туннель подключённым.

Держите учётные данные полностью вне команды. Пароль, набранный в текстовом действии или вставленный в имя команды, сохраняется вместе с ней и синхронизируется с ней, а это худший дом для него, чем связка ключей, которую клиент уже использует.

Политика стоит над кнопкой

За запросом на отключение может сразу последовать повторное подключение, если правило On Demand совпадает с текущей сетью. Конфигурация Always On на устройстве под надзором вообще не даёт пользователю выбора. Команда не может отменить ни один из этих порядков, а та, что будто бы борется с политикой, просто тихо ей проигрывает.

Это довод в пользу узкого и честного намерения. Две явные команды, одна для подключения, другая для отключения, описывают, что произойдёт, лучше, чем один переключатель, смысл которого зависит от состояния, в котором вы находитесь. Их и проще проверять: запустите каждую из известного состояния и посмотрите на результат.

Соберите это в пять шагов

Создайте команду, добавьте Set VPN, выберите конфигурацию, задайте операцию и один раз запустите её из редактора с обычной аутентификацией. Затем откройте сведения о команде, выберите «Добавить на экран «Домой»», назовите значок по подключению, а не по приложению, и добавьте его. руководство Apple по командам на экране «Домой» охватывает этот последний шаг, включая выбор значка.

Параметры действия стоит прочитать один раз, а не додумывать. Переключатель выглядит дружелюбнее на экране «Домой» и ведёт себя хуже именованной операции, когда туннель посреди подключения или восстанавливается.

Повторяйте проверку после каждого крупного выпуска iOS, потому что сдвигаются и список конфигураций действия, и формулировки в «Настройках». Кнопка, которая работала в прошлом году и ничего не делает в этом, обычно отражает изменение названия или доступности, а не сломанный туннель.

Для чего нужна кнопка

Используйте её как дверь к подключению, которому вы уже доверяете: нажмите, пройдите аутентификацию, откройте частный сервис. Она не устанавливает профиль, не чинит сертификат и не делает скриптуемым клиента, который скрывает свою конфигурацию.

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

Похожие статьи