Перейти к содержанию

Зависимости нативных мобильных приложений

Требования применяются к выбору package manager iOS и Android. Общие требования к источнику, целостности, уязвимостям, лицензиям и необходимости пакета определены в DEV-DEP-001DEV-DEP-004. Уровни обязательности определены в корневом README.md.

MOB-DEP-001. Зависимости iOS

Уровень: MUST

Применяется к: разрешению сторонних пакетов iOS-приложения

iOS-приложение должно использовать Swift Package Manager и хранить Package.resolved. CocoaPods и Carthage запрещены.

Обоснование

Один механизм разрешения обеспечивает воспроизводимую сборку и единый аудит iOS-зависимостей.

Проверка

  • проверка package manifest и Package.resolved;
  • сборка с запретом изменения lock;
  • поиск файлов CocoaPods и Carthage.

Исключения

Закрытый binary SDK без поддержки Swift Package Manager требует ADR с checksum, владельцем и процедурой обновления.

MOB-DEP-002. Зависимости Android

Уровень: MUST

Применяется к: разрешению сторонних пакетов Android-приложения

Android-приложение должно использовать Gradle с Version Catalogs и dependency locking. Версии сторонних зависимостей не должны объявляться вне Version Catalog.

Обоснование

Единый каталог версий и lock-файл исключают независимое разрешение одного dependency graph разными сборками.

Проверка

  • проверка Version Catalog и lock-файлов;
  • сборка с запретом изменения lock;
  • поиск версий сторонних зависимостей вне Version Catalog.

Исключения

Закрытый binary SDK без Gradle metadata требует ADR с checksum, владельцем и процедурой обновления.