# Мобильные и веб-SDK

Source: https://help.didit.me/ru/integration/mobile-sdks
Updated: 2026-10-12

Нативные SDK для iOS, Android, React Native и Flutter встраивают проверку в приложение и только они дают NFC. Веб-SDK встраивает её на фронтенд.

Нативные SDK существуют для **iOS, Android, React Native и Flutter**; веб-SDK
встраивают процесс на ваш фронтенд. Используйте нативный SDK, когда вам нужен
**NFC** или лучшее поведение камеры - WebView не даёт ни того, ни другого.
Результаты всё равно приходят через webhook, а не из SDK.

## Зачем нужен SDK, а не просто редирект

[Video: Полное руководство по интеграции - Didit Academy](https://www.youtube.com/watch?v=fX03-WEu_EI)

Редирект на размещённую страницу требует меньше всего усилий и вполне подходит для большинства сценариев. SDK оправдан, когда:

- **Вам нужен NFC.** Чип в паспорте или удостоверении личности нельзя считать со страницы браузера. Нативный SDK - единственный вариант. См. [верификация по NFC-чипу](https://help.didit.me/ru/documents-coverage/nfc-chip-verification).
- **Вы не хотите, чтобы пользователь покидал ваше приложение.** Переход по редиректу и обратно - реальная точка отказа на мобильных устройствах.
- **Вам нужно лучшее поведение камеры.** Нативный доступ к камере надёжнее, чем через браузер, особенно на старых устройствах.

## Что доступно

[Video: Как выбрать подходящий SDK Didit - Didit Academy](https://www.youtube.com/watch?v=qHada8ZY24Q&t=14)

| Платформа | Особенности |
|---|---|
| **iOS** | Распространяется как XCFramework |
| **Android** | Распространяется через Maven |
| **React Native** | Оборачивает нативные модули; поддерживает New Architecture |
| **Flutter** | Оборачивает нативные модули |
| **JavaScript / веб** | Встраивает размещённый процесс на ваш веб-фронтенд |
| **Встроенный iframe** | Отображает процесс прямо внутри вашей страницы вместо редиректа |

![Страница Integrate в консоли Didit со ссылками на SDK и документацию](https://help.didit.me/screenshots/integrate-light.webp)

*Каждый SDK начинается с той же страницы, что и API.*

iOS поддерживает Swift Package Manager и CocoaPods; при необходимости добавьте разрешения камеры и NFC в `Info.plist`. Android распространяется через Maven. React Native поддерживает Expo через сборку для разработки с нативными модулями, но не Expo Go.

Требования к версиям и минимальные версии платформ меняются с каждым релизом, поэтому сверяйтесь с актуальной [документацией по SDK](https://docs.didit.me/integration/native-sdks/overview), а не со снимком этой справочной страницы - а если вы работаете на конкретной версии фреймворка (например, определённой версии Expo SDK), подтвердите совместимость у вашего контакта в Didit до того, как закладывать это в спринт.

## WebView - это не нативный SDK

Обёртка размещённого веб-процесса в WebView выглядит как встроенный в приложение опыт. Она даёт только видимость этого:

- **Нет NFC.** Чип по-прежнему нельзя считать.
- **Разрешения на камеру сложнее получить.** Доступ к камере из WebView зависит от настроек хост-приложения, и ошибка здесь приводит ровно к тем жалобам "камера так и не открылась", которые разобраны в статье [решение проблем с liveness и совпадением лиц](https://help.didit.me/ru/liveness-biometrics/liveness-and-face-match-issues).
- **Локаль берётся от приложения, а не от пользователя.** WebView передаёт локаль хост-приложения, поэтому передавайте `language` явно при создании сессии. См. [настройка языка верификации](https://help.didit.me/ru/workflows/verification-languages).

Если вы уже идёте на сложности ради процесса внутри приложения, используйте нативный SDK.

## Результаты по-прежнему приходят через webhooks

Здесь многие ошибаются: SDK сообщает вашему приложению, что пользователь завершил процесс. Это **не** авторитетный источник решения по верификации.

Решение формируется на стороне сервера после того, как проверки завершены, и доходит до вас через [webhook](https://help.didit.me/ru/integration/webhooks-basics). Никогда не открывайте доступ, полагаясь только на колбэк завершения от SDK - клиентский сигнал легко подделать, а проверки на момент его срабатывания могут быть даже не завершены.

> **Warning:** Считать, что "SDK сказал - готово" равнозначно "пользователь верифицирован" -
> самая серьёзная ошибка, которую можно допустить в мобильной интеграции.
> Подтверждайте на своём сервере, через webhook или endpoint с решением, прежде
> чем открывать что-либо.

## Одно потребительское приложение или своё?

Отдельного потребительского приложения Didit, в которое размещённая сессия передавала бы пользователя для такого шага, как NFC, не существует. Если вы хотите получить всё - и с NFC, и без него - в рамках единого приложения, это приложение - **ваше**, со встроенным в него SDK.

## Дистрибуция и конфликты зависимостей

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

## Тестирование на устройстве

Переключитесь в **Sandbox** под названием приложения, создайте тестовый API-ключ и используйте его. Проверки имитируются, плата не взимается, результат можно выбрать.

[тестирование в sandbox](https://help.didit.me/ru/getting-started/sandbox-and-testing)
