Отказ из-за Privacy Manifest означает, что декларации приватности в собранном приложении не соответствуют фактическому коду или требованиям используемых SDK.

Исправление начинается не с копирования чужого файла, а с проверки текста отказа, состава архива и реального обращения приложения к данным и системным API.

Как выглядит проблема при проверке App Store

Ошибка может появиться при загрузке сборки или уже во время App Review.

  • App Store Connect сообщает об отсутствующем или некорректном privacy manifest.
  • В отказе указан сторонний SDK, которого нет в основном target проекта.
  • Система требует причину использования определенной категории API.
  • Локальная проверка проходит, но архив в App Store отклоняется.

Почему возникает проблема

Чаще всего декларация существует в репозитории, но не попадает в нужный bundle или не покрывает зависимости.

  • PrivacyInfo.xcprivacy не включен в ресурсы нужного target.
  • Сторонний SDK использует API или собирает данные без собственной декларации.
  • В required reason API выбрана причина, не соответствующая поведению кода.
  • Типы собираемых данных и их назначение описаны неполно.
  • В архив попала другая версия SDK или manifest, чем ожидалось.

Пошаговая диагностика

Проверять нужно именно экспортированный archive, потому что App Store анализирует его, а не структуру исходного проекта.

  1. Сохраните полный текст отказа и перечисленные Apple компоненты или категории API.
  2. Откройте содержимое .xcarchive и найдите manifests во всех app, framework и extension bundles.
  3. Сопоставьте версии сторонних SDK с документацией их поставщиков.
  4. Проверьте обращения к required reason API в собственном коде и зависимостях.
  5. Сформируйте privacy report и сравните его с карточкой приложения в App Store Connect.

Декларируйте только фактическое поведение

Лишние отметки не делают сборку безопаснее и могут создать новое несоответствие.

  • Каждый тип данных связывается с реальной целью сбора и передачей третьим лицам.
  • Причины использования API выбираются по фактическому сценарию кода.
  • Manifest расширений и библиотек учитывается вместе с основным приложением.
  • Изменения в декларациях согласуются с privacy policy и карточкой приложения.

Как исправить проблему

После диагностики исправьте ресурсы target и зависимости, затем соберите новый чистый архив.

  1. Добавьте PrivacyInfo.xcprivacy в нужные targets и проверьте Copy Bundle Resources.
  2. Обновите или замените SDK, поставляемый без необходимых деклараций.
  3. Укажите подтвержденные категории данных, цели и required reasons.
  4. Удалите неиспользуемые библиотеки и вызовы API, которые создают требование.
  5. Очистите build cache, пересоберите archive и повторно проверьте его состав.

Как проверить результат

  • Manifest присутствует в каждом нужном bundle готового архива.
  • Privacy report не содержит неизвестных источников данных или API.
  • App Store Connect принимает новую сборку без прежнего предупреждения.
  • Privacy policy и ответы в App Store Connect соответствуют manifest.

Типичные ошибки

  • Копировать универсальный manifest из случайного проекта.
  • Проверять только файл в Xcode, не открывая готовый archive.
  • Игнорировать manifests сторонних frameworks и extensions.
  • Декларировать все категории на всякий случай.

Как предотвратить повторение

  • Проверяйте privacy report перед каждой отправкой релиза.
  • Фиксируйте версии SDK и отслеживайте изменения их privacy manifests.
  • Добавьте проверку наличия PrivacyInfo.xcprivacy в CI.
  • Пересматривайте декларации при добавлении аналитики, рекламы и новых разрешений.

Когда нужна помощь

Если App Store отклоняет сборку из-за Privacy Manifest, я разберу архив и зависимости, найду точное несоответствие и подготовлю корректное исправление без ложных деклараций.