# Apple TV (tvOS)

Приложение **Happ — Proxy Utility for TV** является **самостоятельным** продуктом, отличным от версии для iOS, из-за особенностей и ограничений платформы tvOS. Подробности — в разделе «Особенности и ограничения» ниже.

***

### 1) Импорт по локальной сети

<figure><img src="https://3543042857-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQmSIGg7AmcgXo76saXyc%2Fuploads%2FEbxinW2CB6hZbBzBDS3d%2Fimage.png?alt=media&#x26;token=e676520f-c327-429a-aec3-b229004ac3d8" alt=""><figcaption></figcaption></figure>

При первом запуске автоматически откроется **экран импорта** (аналог нажатия «+»). Вы можете передать:

* отдельные конфигурации серверов,
* одну или несколько подписок,
* или всё сразу.

**Требования:**

* iPhone/Android с установленным Happ и Apple TV должны быть в **одной Wi-Fi сети**.
* На экране TV отсканируйте **QR-код** с помощью Happ на iOS/Android.

**Как это работает:**

1. Откройте Happ на iOS/Android.
2. Сканируйте QR-код с экрана TV.
3. Выберите, что отправлять (конфигурации/подписки) и подтвердите.

**Важно:**

* **Не закрывайте экран импорта** на TV до окончания передачи — иначе соединение может оборваться и данные импортируются частично или не импортируются вовсе.
* При передаче с iOS система покажет запрос **разрешения на подключения по локальной сети**. Если отказать, повторный системный диалог не появится (особенность API Apple), и локальные запросы будут блокироваться. См. решение в разделе «Особенности и ограничения».

**После передачи:**

* При успехе экран импорта скрывается, начинается обработка полученных данных (например, получение конфигураций по URL подписки).
* При ошибках (не удалось разобрать конфигурацию или получить данные по ссылке подписки) приложение покажет сообщение об ошибке.
* **QR-код обновляется автоматически**.

***

### 2) Веб-импорт через удалённый сервер

<figure><img src="https://3543042857-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQmSIGg7AmcgXo76saXyc%2Fuploads%2FjcQiOIZf3AeEL4YohkoR%2Fimage.png?alt=media&#x26;token=e5ecab0f-e9fe-4834-9a38-e8772ed9903b" alt=""><figcaption></figcaption></figure>

Если локальная сеть недоступна или заблокирована разрешениями, используйте **Web Import**.

**Шаги:**

1. На экране импорта выберите **«Web Import»**.
2. Выберите один из вариантов:
   * Откройте в любом браузере сайт **tv.happ.su**, введите **временный код** с экрана TV, затем добавьте данные и нажмите «Отправить».
   * Отсканируйте **QR-код** с экрана TV — он содержит и адрес, и временный код.

**Важно:**

* **Не закрывайте экран импорта** на TV до завершения операции — иначе соединение может быть закрыто, а данные — не доставлены полностью.
* **QR-код обновляется автоматически**.

**Результат:**

* После успешной передачи приложение скроет экран импорта и выполнит те же действия, что и при импорте по локальной сети.

***

### 3) Подключение

После успешного импорта на **домашнем экране** появится список полученных подписок/серверов. Первый доступный сервер будет выбран автоматически.

Поддерживаются стандартные операции:

* выбор сервера,
* подключение/отключение,
* пинг,
* обновление подписки.

Поведение в целом соответствует версиям для iOS/Android/Desktop.

***

### 4) Настройки

<figure><img src="https://3543042857-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQmSIGg7AmcgXo76saXyc%2Fuploads%2FXBZO5juJcPFlSh5Lz7rL%2Fimage.png?alt=media&#x26;token=3802b4e7-12d3-421e-9289-1eb736d031ed" alt=""><figcaption></figcaption></figure>

Настройки на tvOS **визуально отличаются** от других платформ.

Ключевое отличие — на tvOS нет классического **роутинга**. Вместо него доступен упрощённый механизм **правил Direct**:

* Встроен **дефолтный список Direct-правил**.
* Вы можете их включать/выключать и редактировать под свои задачи.

<figure><img src="https://3543042857-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQmSIGg7AmcgXo76saXyc%2Fuploads%2FlHkcm1uVJyMUcnFJSNPM%2Fimage.png?alt=media&#x26;token=f782e449-97a7-40d9-a51d-4669518cc50a" alt=""><figcaption></figcaption></figure>

***

### 5) Особенности и ограничения tvOS

**Хранилище и очистка данных**

* На Apple TV (tvOS) отсутствует «гарантированно постоянное» хранилище для приложений. При нехватке памяти система может **самостоятельно удалить сохранённые данные** приложения (конфигурации/подписки). Рекомендуется хранить важные данные в подписке/на сервере и уметь быстро повторить импорт.

**Лимит памяти на туннель**

* tvOS (как и iOS) жёстко ограничивает потребление памяти для сетевого туннеля — около **50 МБ**. При превышении лимита система может **завершить процесс туннеля** (фактически «отключить» соединение). Это системное ограничение.

**Разрешение «Локальная сеть» на iOS**

* В iOS известна особенность (баг API): если при первом запросе **разрешения на локальные подключения** вы выбрали «Не разрешать», **повторный системный диалог не появится**. Даже после включения разрешения в настройках приложения iOS может **продолжать блокировать** такие подключения.
* **Решение:** переустановите приложение на iOS-устройстве (после этого система снова покажет диалог) или используйте **Web Import**.

***

#### Подсказки

* Если импорт «по воздуху» не проходит из-за разрешений/сети — **сразу используйте Web Import**: это надёжно и не зависит от локальных ограничений.
* Для минимизации риска потери данных держите **актуальные подписки** и при необходимости повторно импортируйте их на TV всего в пару шагов.
