[Перевод] Как исправить ITMS-91053: Missing API declaration

Если вы разработчик iOS (или Flutter, как я) приложений, вероятно, вы уже сталкивались с предупреждением от Apple: ITMS-91053: Missing API Declaration. 

Письмо от Apple

Письмо от Apple

Почему Apple отправляет письма разработчикам?

Apple стремится улучшать защиту данных пользователей и требует от разработчиков предоставления детальной информации о том, как их приложения используют личные данные. Введение требования о файле PrivacyInfo.xcprivacy направлено на то, чтобы разработчики явно указывали, какие данные собирают их приложения, и для каких целей эти данные используются.

Крайний срок для заполнения файла PrivacyInfo.xcprivacy

До 1 мая 2024 года все приложения должны быть обновлены и должны содержать файл PrivacyInfo.xcprivacy с корректно заполненной информацией о конфиденциальности.

Для начала обновим библиотеки

Большинство библиотек уже включают в себя Privacy Manifest. Проверьте обновления для используемых вами библиотек.

Alamofire уже добавили Privacy Manifest, а ты нет

Alamofire уже добавили Privacy Manifest, а ты нет

Создание и заполнение файла PrivacyInfo.xcprivacy

Создание файла

  1. File → New → File

  2. Выберите шаблон App Privacy

  3. Назовите файл PrivacyInfo и сохраните

Заполнение файла

  1. Указать тип данных из письма от Apple (например, местоположение, контакты, фотографии и т.д.)

  2. Найти категорию в документации

  3. Описать, как эти данные используются вашим приложением и обосновать необходимость сбора этих данных

Заполненный Privacy Manifest

Заполненный Privacy Manifest

Пример моего кода:





 NSPrivacyTracking
 
 NSPrivacyTrackingDomains
 
 NSPrivacyCollectedDataTypes
 
 NSPrivacyAccessedAPITypes
 
  
   NSPrivacyAccessedAPIType
   NSPrivacyAccessedAPICategoryFileTimestamp
   NSPrivacyAccessedAPITypeReasons
   
    3B52.1
   
  
  
   NSPrivacyAccessedAPIType
   Disk space
   NSPrivacyAccessedAPITypeReasons
   
    7D9E.1
   
  
  
   NSPrivacyAccessedAPIType
   System boot time
   NSPrivacyAccessedAPITypeReasons
   
    35F9.1
   
  
  
   NSPrivacyAccessedAPIType
   User defaults
   NSPrivacyAccessedAPITypeReasons
   
    CA92.1
   
  
 

Советы по заполнению

  • Убедитесь, что вы указываете все данные, которые собираете, а также цель сбора данных.

  • Будьте честны. Это поможет избежать проблем с проверкой приложения.

  • Если вы не знаете с какой целью в приложении используется определённая категория, вы можете найти в коде конкретные методы. Marco Eidinger рассказывает об этом способе в своей статье.

Заключение

Не забудьте, что до 1 мая 2024 все приложения должны быть обновлены с учетом новых требований конфиденциальности и должны содержать файл PrivacyInfo.xcprivacy. Не затягивайте с обновлением файла!

Если было интересно и полезно, приглашаю в свой Linkedin.

Полезные ссылки

Describing use of required reason API.

Privacy manifest files.

WWDC23 Privacy report.

Example of PrivacyInfo.xcprivacy.

© Habrahabr.ru