Зависимости нативных мобильных приложений¶
Требования применяются к выбору package manager iOS и Android. Общие требования
к источнику, целостности, уязвимостям, лицензиям и необходимости пакета
определены в DEV-DEP-001–DEV-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, владельцем и процедурой обновления.