Перейти к содержимому
Публикация в сторах

Ярлыки конфиденциальности App Store: сначала проверьте SDK аналитики (чек-лист 2026)

Перечислите все SDK аналитики и сторонние SDK в сборке, запишите, какие данные каждый отправляет с устройства, и отвечайте на вопросы App Store о конфиденциальности по этому списку, пока это не сделала проверка.

Коротко

Ярлыки конфиденциальности App Store должны охватывать данные, которые собирают ваши SDK аналитики и другие сторонние SDK, а не только то, что отправляет ваш собственный код. Прежде чем отвечать на вопросы раздела App Privacy в App Store Connect, составьте список всех SDK в сборке, сопоставьте данные, которые каждый из них отправляет с устройства, с типами данных Apple и решите, считается ли что-либо из этого отслеживанием. Ответы можно изменить в любой момент без новой сборки. SDK из списка Apple, например FirebaseCrashlytics, также должны поставляться с манифестами конфиденциальности.

Главное
  • Apple считает инструменты аналитики, рекламные сети и любые сторонние SDK, код которых есть в вашем приложении, партнёрами, сбор данных которыми вы обязаны декларировать.
  • Данные считаются «собираемыми», если они покидают устройство и хранятся дольше, чем нужно для обработки запроса в реальном времени.
  • SDK, не связанный с рекламой, например SDK входа, превращает ваше приложение в отслеживающее, если повторно использует данные ваших пользователей для рекламы в приложениях других разработчиков.
  • Ответы для ярлыков конфиденциальности вступают в силу после нажатия Publish, и, по словам Apple, для их изменения не нужно отправлять обновление приложения.
  • SDK из списка часто используемых SDK Apple требуют манифест конфиденциальности в новом приложении или обновлении, которое их добавляет, иначе при загрузке появится ITMS-91061.
Ваши SDK тоже отвечают

Ваши ярлыки конфиденциальности App Store должны охватывать то, что собирают SDK аналитики и другие сторонние SDK, а не только то, что отправляет ваш собственный код. Прежде чем отвечать на вопросы App Privacy в App Store Connect, составьте список всех SDK в релизе, запишите, какие данные каждый из них отправляет с устройства, и решите, используется ли что-то из этого для отслеживания. Отвечайте по этому списку, а не по памяти.

Должны ли ярлыки конфиденциальности App Store включать данные сторонних SDK?

Да. Apple требует декларировать данные, которые собирает код сторонних партнёров, даже если SDK собирает их не для аналитики или рекламы.

На странице App Privacy Apple определяет сторонних партнёров как «инструменты аналитики, рекламные сети, сторонние SDK или других внешних поставщиков, чей код вы добавили в своё приложение». Значит, в вашем списке должны быть и сервис отчётов о сбоях, и библиотека входа. Критерий сбора связан с передачей: «сбор» означает «передачу данных с устройства таким образом, что вы и/или ваши сторонние партнёры можете получить к ним доступ на срок дольше, чем необходимо для обработки переданного запроса в реальном времени». Данные, которые обрабатываются только на устройстве, собранными не считаются.

Как составить инвентаризацию SDK для ярлыков конфиденциальности?

Составляйте инвентаризацию по разрешённым зависимостям релизной сборки, включая транзитивные, и записывайте название и версию каждого SDK.

  1. Выгрузите список разрешённых зависимостей для каждой платформы: Podfile.lock, Package.resolved, pubspec.lock или дерево зависимостей Gradle.
  2. Не отбрасывайте транзитивные зависимости. В требованиях Apple к сторонним SDK сказано, что вы «несёте ответственность за весь код, который SDK добавляет в ваше приложение», поэтому общий модуль, который подтягивает SDK, тоже учитывается.
  3. Запишите название и версию каждой записи. Поставщики меняют обработку данных от версии к версии, поэтому версия должна быть в заметках аудита.
  4. Отметьте SDK, которые входят в список часто используемых сторонних SDK Apple. Для них Apple требует манифесты конфиденциальности при отправке нового приложения или обновления, которое их добавляет, и подписи, если это бинарные зависимости. «Учитывается любая версия SDK из списка, а также любые SDK, которые переупаковывают SDK из списка».

Добавьте этот шаг в свой чек-лист отправки в App Store, чтобы он выполнялся при каждом релизе, а не только при первом.

К каким типам данных App Store относится каждый SDK?

Каждый SDK соответствует одному или нескольким фиксированным типам данных Apple, например Crash Data, Performance Data, Product Interaction, Device ID и Advertising Data. Изучите документацию поставщика о данных и заполните строку для каждого SDK:

Роль SDKКакие типы данных проверитьКлючевой вопрос
Отчёты о сбояхCrash Data, Performance DataПокидают ли данные о сбоях устройство и привязаны ли они к ID пользователя?
Продуктовая аналитикаProduct Interaction, Other Usage Data, Device IDПередаётся ли ID устройства другим компаниям или приложениям?
Атрибуция или измерение рекламыAdvertising Data, Device ID, Purchase HistoryОбъединяются ли данные с данными из других приложений для рекламы?
Вход в аккаунтEmail Address, User IDИспользует ли поставщик данные аккаунта за пределами вашего приложения?

Apple указывает, что собранные данные «часто связаны с личностью пользователя, если до сбора не приняты специальные меры защиты конфиденциальности для их деидентификации или анонимизации», например удаление прямых идентификаторов вроде ID пользователя или имени. После сбора вы также не должны снова связывать данные с пользователем или с другими наборами данных, которые его идентифицируют. Если вы не можете подтвердить, что SDK деидентифицирует данные, отмечайте их как связанные с пользователем.

Когда SDK аналитики считается отслеживанием?

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

Определение Apple: «связывание данных, собранных вашим приложением о конкретном конечном пользователе или устройстве, таких как ID пользователя, ID устройства или профиль, с данными третьих сторон для таргетированной рекламы или измерения рекламы, либо передача данных, собранных вашим приложением о конкретном конечном пользователе или устройстве, брокеру данных». Аналитика, которая остаётся в пределах данных вашего приложения, отслеживанием не является. Измерение рекламы с общим идентификатором для разных приложений — является.

Ловушка — партнёр, который не является рекламным SDK. Пример Apple — «SDK входа, который повторно использует данные, собранные из вашего приложения, для таргетированной рекламы в приложениях других разработчиков»; это считается отслеживанием, даже если вы сами не используете SDK для этой цели. Если один из ваших SDK так поступает, обычное решение — изменить настройки так, чтобы прекратить использование данных в других приложениях, или сменить поставщика.

Можно ли не указывать какие-то данные SDK в ярлыках конфиденциальности?

Только если тип данных соответствует всем четырём критериям Apple для необязательного раскрытия, а данные аналитики и сбоев почти никогда им не соответствуют. Критерии такие:

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

Apple добавляет, что «данные, которые собираются на постоянной основе после первоначального запроса разрешения, должны раскрываться». SDK аналитики работают непрерывно, и пользователь не выбирает их каждый раз, поэтому они не проходят два последних критерия.

Как выглядит завершённый аудит SDK?

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

SDKЧто декларироватьСвязаны с пользователемИспользуются для отслеживания
Сервис отчётов о сбоях (FirebaseCrashlytics, в списке Apple)Crash Data, Performance DataДа, если привязаны к ID пользователяНет, если не объединяются с данными третьих сторон для рекламы
Продуктовая аналитикаProduct Interaction, Device IDДаНет, если поставщик не передаёт данные между приложениями для рекламы
Вход в аккаунтEmail Address, User IDДаДа, если поставщик использует данные аккаунта для таргетинга рекламы в других приложениях

Строка со входом в аккаунт меняет объём работы. Из-за неё приложение становится отслеживающим, поэтому ярлыки должны это отражать, а обработка согласия — соответствовать. Перейти на поставщика входа, который не передаёт данные между приложениями, или отключить такую передачу гораздо дешевле до отправки, чем после отказа. Затем протестируйте релизную сборку со всеми включёнными SDK, как в плане тестирования релизной сборки.

Что пошло не так у других разработчиков?

Публично описанные случаи показывают три точки отказа: ярлыки, не совпадающие с бинарником, данные SDK, о которых разработчик не знал, и SDK из списка, выпущенные без манифестов.

  • Разработчик на Apple Developer Forums убрал отслеживание из новой сборки, но не смог убрать его из ярлыка. App Store Connect сообщал: «Ваше приложение содержит NSUserTrackingUsageDescription, что указывает на то, что вы будете запрашивать разрешение на отслеживание пользователей», а проверка продолжала отклонять приложение с формулировкой «Сведения о конфиденциальности приложения, предоставленные вами в App Store Connect, указывают, что вы собираете данные для отслеживания пользователя… Однако вы не используете App Tracking Transparency». По словам разработчика, приложение одобрили после того, как он подал апелляцию и дождался ответа, прежде чем отправлять приложение повторно.
  • Другой разработчик на Apple Developer Forums использовал Firebase Analytics с отключённым сбором IDFA и IDFV и ярлыком «без отслеживания», но всё равно получил отказ по Guideline 5.1.2. В сообщении говорилось: «Сбор файлов cookie является формой отслеживания». Речь шла о cookie в веб-контенте, который загружало приложение, а не о Firebase. В одном из ответов указали на это несоответствие, но решение так и не опубликовали.
  • Разработчики в issue RxSwift на GitHub получили «ITMS-91061: Missing privacy manifest» для RxSwift, RxRelay и RxCocoa. Один пользователь указал CocoaPods на ветку 6.8.0, в которой есть манифест, и сообщил, что выпустил следующее обновление «без каких-либо предупреждений от Apple».

Общая закономерность: Apple сравнивает ваши ответы с тем, что реально делают выпущенный бинарник и его веб-контент, поэтому инвентаризация, составленная по настоящей сборке, выявляет все три проблемы раньше проверки.

Как опубликовать и обновить ярлыки конфиденциальности в App Store Connect?

Ярлыки конфиденциальности публикуются в разделе App Privacy вашего приложения в App Store Connect. Ответы вступают в силу только после нажатия Publish, и, по словам Apple, их можно изменить в любой момент без отправки обновления приложения.

  1. В App Store Connect выберите приложение, нажмите App Privacy на боковой панели, затем Get Started.
  2. Укажите, собираете ли данные вы или ваши сторонние партнёры, выберите все типы данных из вашего аудита и нажмите Save.
  3. Ответьте на уточняющие вопросы по каждому типу данных, нажмите Save и проверьте Product Page Preview.
  4. Нажмите Publish в правом верхнем углу и подтвердите точность сведений в диалоговом окне.

Согласно Manage app privacy, вам нужна роль Account Holder, Admin или App Manager. Если страница продукта ещё не опубликована, ваши ответы будут опубликованы вместе с ней. Если приложение уже продаётся, ответы должны отражать данные, которые собирает только эта версия. Изменения URL политики конфиденциальности «выходят вместе со следующей версией приложения». Если проверка уже указала на проблемы с конфиденциальностью, начните с руководства по исправлению отказов App Store.

Частые вопросы

Нужно ли отправлять новую сборку, чтобы изменить ярлыки конфиденциальности в App Store?

Нет. На странице Apple App Privacy сказано, что вы можете обновлять ответы в любое время и для их изменения не нужно отправлять обновление приложения. Отредактируйте ответы в разделе App Privacy в App Store Connect и нажмите Publish. Одно исключение: изменения URL политики конфиденциальности выходят вместе со следующей версией приложения. Другая оговорка Apple: ответы для приложения, которое уже продаётся, должны соответствовать версии, опубликованной сейчас.

Нужен ли Firebase Crashlytics манифест конфиденциальности?

Да. По состоянию на октябрь 2026 года FirebaseCrashlytics входит в список Apple SDK, которым нужны манифест конфиденциальности и подпись. Требование действует, когда вы отправляете новое приложение с этим SDK или обновление, которое его добавляет. Учитывается любая версия SDK из списка, а также любой SDK, который его переупаковывает. Используйте актуальный релиз Firebase и проверьте, что файл PrivacyInfo.xcprivacy действительно попадает внутрь собранного фреймворка.

Чем манифест конфиденциальности отличается от ярлыка конфиденциальности?

Манифест конфиденциальности — это файл PrivacyInfo.xcprivacy внутри вашего приложения или SDK, который описывает данные, собираемые кодом. При подготовке к распространению Xcode объединяет манифесты ваших сторонних SDK в один отчёт. Ярлык конфиденциальности — это набор ответов, которые вы публикуете в разделе App Privacy в App Store Connect; именно их пользователи видят на странице продукта. Используйте отчёт Xcode как исходные данные для ответов, а не как замену собственного аудита.

Нужен ли запрос App Tracking Transparency, если в ярлыке конфиденциальности указано отслеживание?

На практике да. Разработчики на Apple Developer Forums сообщают об отказах по Guideline 5.1.2, где сказано, что сведения о конфиденциальности указывают на отслеживание, «однако вы не используете App Tracking Transparency, чтобы запросить разрешение пользователя». Если вы действительно отслеживаете пользователей, добавьте запрос ATT до начала любого отслеживания. Если нет — исправьте ярлык и удалите NSUserTrackingUsageDescription из сборки.

Кто может редактировать ответы App Privacy в App Store Connect?

Чтобы отвечать на вопросы о конфиденциальности и публиковать ответы, нужна роль Account Holder, Admin или App Manager. Редактировать URL политики конфиденциальности и необязательный URL настроек конфиденциальности может также роль Marketing. Разработчики без этих ролей всё равно могут провести инвентаризацию SDK и передать готовые ответы администратору, чтобы тот внёс и опубликовал их.

Источники и что почитать

Правила меняются. Перед отправкой сверьтесь с официальной документацией.

Приходите со сборкой. Или с идеей.

Давайте доведём ваше приложение до релиза.

Предметный созвон, чтобы понять, что отделяет ваше приложение от публикации в сторе.

Записаться на созвон ↗