# iOS SDK: обзор и быстрый старт

Gravity Field SDK передаёт просмотры экранов и события, получает персонализированный контент и показывает кампании в приложении. Выбор кампаний и A/B-вариантов выполняет сервер; приложение отвечает за навигацию и может рисовать контент самостоятельно.

Руководство сверено 2 октября 2026 года с публичным кодом **iOS SDK 1.0.6**, ветка `main`, коммит [`645ca44`](https://github.com/Gravity-Field/gravity-sdk-ios/tree/645ca445f95d63a11750dc8fe4237e66172059a8). Минимальные требования пакета: **iOS 14**, **Swift 5.9**. После тега `1.0.6` в `main` также исправлены отступы `GravityText`.

[Репозиторий SDK](https://github.com/Gravity-Field/gravity-sdk-ios) · [История изменений](https://github.com/Gravity-Field/gravity-sdk-ios/blob/645ca445f95d63a11750dc8fe4237e66172059a8/CHANGELOG.md)

| Задача | Раздел |
|---|---|
| Настроить SDK, callback и разрешения | [Конфигурация](./configuration.md) |
| Связать пользователя между каналами | [Идентификация](./identity.md) |
| Передавать контекст и события | [Контекст и события](./events.md) |
| Показать кампанию или рекомендации | [Кампании и рекомендации](./campaigns.md) |
| Рисовать контент самостоятельно | [Свой UI и Custom JSON](./custom_ui.md) |
| Проверить варианты интерфейса | [A/B через JSON](./ab_testing.md) |
| Менять структуру виджета с сервера | [Backend-Driven UI](./bdui.md) |

## Установка

SDK подключается через Swift Package Manager.

Минимальная версия платформы: `iOS 14`.

1. В Xcode откройте `File -> Add Package Dependencies...`.
2. Укажите `https://github.com/Gravity-Field/gravity-sdk-ios.git` и выберите версию `1.0.6`.
3. Выберите продукт `GravitySDK` и добавьте его в target приложения.
4. Импортируйте SDK в коде:

```swift
import GravitySDK
```

## Минимальное приложение

1. Получите `apiKey` и `section` вашего проекта.
2. Опубликуйте inline-кампанию с selector `product_recommendations` и контекстом товара: `PRODUCT`, SKU `sku-123`, location `app://product/sku-123`.
3. Для проверки автопоказа опубликуйте in-app кампанию по просмотру этого экрана или событию `add-to-cart-v1`.
4. Скопируйте [quick_start.swift](./examples/quick_start.swift) в SwiftUI-проект, заменив файл с `@main`, ключ и секцию. Если ваш фид содержит другой SKU, замените его в кампании и примере.
5. Запустите приложение. Просмотр отправляется при появлении экрана, кнопка отправляет событие добавления в корзину, inline-блок показывает рекомендации. В реальном приложении событие отправляйте после успешного изменения корзины.

В примере есть минимальный `ProductViewBuilder` без дополнительных библиотек. Навигацию по deeplink и открытие товара подключите к роутеру приложения. Полная сборка примера требует Xcode с iOS SDK. Для встраивания в существующий проект используйте [Конфигурацию](./configuration.md) и [Кампании и рекомендации](./campaigns.md).
Настройка форматов и сценариев в кабинете: [Кампании в приложении](/personalization/Campaigns/app_campaigns/getting_started.md).

## PageContext

Поля контекста, SKU, категории и регион описаны в [Контексте и событиях](./events.md#pagecontext).

## Логирование SDK

Уровни логирования, debug-диагностика и телеметрия ошибок описаны в [Конфигурации](./configuration.md#логирование-sdk).

<a id="presentation-lock"></a>

## Блокировка показа in-app кампаний

[Presentation lock и её ограничения](./configuration.md#блокировка-показа-in-app-кампаний).

## Вызов SDK до GravitySDK.initialize()

[Порядок инициализации и диагностика ранних вызовов](./troubleshooting.md#вызов-sdk-до-gravitysdkinitialize).

## Следующие шаги

- [Сеть и жизненный цикл](./network.md).
- [Справочник API](./api_reference.md).
- [Проверка интеграции перед выпуском](./troubleshooting.md).
