Лучшие практики внедрения SDK
На этой странице собраны наиболее важные рекомендации по интеграции и сопровождению SDK Unico. Соблюдение этих практик снижает количество ошибок интеграции, предотвращает инциденты безопасности и обеспечивает плавный выход в продакшн.
Getting started
Unico предоставляет Proof of Concept (PoC) с рабочими примерами кода для всех поддерживаемых языков программирования. Они демонстрируют ожидаемые последовательности вызовов методов и паттерны интеграции. Доступ к доступным PoC осуществляется через систему заявок в поддержку на клиентском портале.
SDK постоянно развивается для обеспечения большей безопасности и новых функций. Своевременное применение обновлений — особенно критических — является обязательным. Сроки и обязательства описаны в разделе Политика обновлений.
Актуальную версию для каждой платформы можно найти в соответствующих примечаниях к выпускам:
- Примечания к выпускам Android
- Примечания к выпускам iOS
- Примечания к выпускам Flutter
- Примечания к выпускам Web
Update strategy
Ваше приложение, скорее всего, загружает несколько библиотек вместе с SDK Unico. Одновременное обновление нескольких зависимостей затрудняет выявление первопричины сбоев. Обновляйте SDK изолированно и проверяйте его в тестовой среде перед объединением с другими изменениями.
При открытии заявки в поддержку по вопросам обновления укажите:
- Язык SDK и тип реализации (нативный или гибридный)
- Используемый фреймворк
- Текущую версию и целевую версию
- API Key
- Описание изменений и шаги для воспроизведения проблемы
- Результаты, ошибки, логи, скриншоты или видеозаписи
JWT security
JWT, возвращаемый после успешного захвата, является зашифрованным. Не открывайте, не разбирайте и не сериализуйте его. Его внутренняя структура может измениться без предупреждения. Используйте его исключительно при отправке изображений в API Unico.
Для предварительного просмотра изображений используйте атрибут Base64, предоставляемый вместе с JWT — никогда не декодируйте сам JWT.
По соображениям безопасности JWT должен быть отправлен в бэкенд Unico в течение 10 минут после захвата. Пакеты, отправленные по истечении этого времени, становятся недействительными.
JWT должен быть отправлен только один раз. Если в процессе отправки возникает ошибка, необходимо выполнить новый биометрический захват — повторно использовать тот же JWT нельзя.
Testing guidelines
Запуск SDK на виртуальных машинах или эмуляторах вызывает коды ошибок безопасности (73006, 73600, 73400). Всегда тестируйте на физических устройствах, чтобы избежать неверной интерпретации ошибок и лишней доработки.
Web SDK обнаруживает открытые DevTools как потенциальный сигнал мошенничества и аннулирует отправку. Закрывайте DevTools перед выполнением сквозных тестов захвата.
Выполняйте тесты в тестовой среде Unico
Перед выходом в продакшн проведите тщательное тестирование в тестовой среде Unico с реалистичными сценариями. Используйте API Keys и конфигурации для тестовой среды — никогда не используйте продакшн-учётные данные в тестах.
Platform-specific guidelines
Не пытайтесь создавать мосты к нативным Android или iOS SDK внутри Flutter-приложения. Нативные мосты часто порождают неотображаемые ошибки. Всегда используйте специализированный плагин Flutter от Unico.
При обновлении Web SDK удалите старые файлы ресурсов из папки public перед добавлением новых. Файлы с одинаковыми именами не будут перезаписаны автоматически и могут вызвать конфликты версий.
Артефакты сборки от предыдущих версий SDK могут вызывать ошибки зависимостей после обновления. Перед сборкой новой версии:
- Flutter: удалите
pubspec.lockи выполнитеflutter pub get - iOS: выполните
pod cache clean --allиpod install - Android: выполните
./gradlew clean
Исключите код SDK Unico из конфигурации обфускации. Обфускация SDK часто вызывает сбои в сборках для выпуска, которые не проявляются в отладочных сборках. Обратитесь к документации для конкретной платформы, чтобы узнать необходимые правила keep.
UX and performance
Структурируйте поток SDK в два отдельных этапа:
- Подготовка — инициализируйте SDK во время загрузки страницы (до взаимодействия с пользователем).
- Открытие — запускайте камеру только тогда, когда пользователь явно инициирует это действие.
Подготовка SDK заранее снижает воспринимаемую задержку и значительно улучшает пользовательский опыт.
Production rollout
Перед развёртыванием в продакшн убедитесь в следующем:
- Продакшн API Keys и конфигурации окружения настроены правильно
- План отката определён и протестирован
- Протокол сбора логов готов
- Процедуры подачи заявок в поддержку задокументированы для обработки сбоев
- Все проверки прошли успешно в тестовой среде