59. Настраиваем PrivacyInfo.xcprivacy

59. Настраиваем PrivacyInfo.xcprivacy

Oleg991

Начиная с 13.03.24, при загрузке приложения в App Store Connect, которое использует перечисленные тут API, вы получите письмо с уведомлением. С 01.05.24 Apple не пропустит приложение без указания причины использования этих API. В этой статье покажу как с этим работать.

Инструкция

Получили письмо:

Письмо от Apple с перечислением API, для которых нужно указать причину использования в вашем приложении

У нас в приложении такие API не используются в явном виде, но это не важно - письмо пришло и нужно с этим работать.

Обновляем зависимости

В зависимостях, которые активно поддерживаются, ребята уже сделали работу по добавлению манифестов с перечислением причин использования важных API - такие зависимости просто нужно обновить до версии с манифестами:

Релиз AppMetrica с манифестом приватности
Релиз Firebase c манифестом приватности
Релиз Kingfisher с манифестом приватности

Добавляем свой манифест

Открываем Xcode и добавляем в проект новый файл:

Шаг 1: находим в списке шаблонов App Privacy
Шаг 2: выбираем, куда сохранить новый файл, указываем таргет
Шаг 3: видим пустой файл, который будем заполнять

Заполняем свой манифест

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

  1. Смотрим название категории API в письме от Apple
  2. Находим эту категорию в документации
  3. Заполняем манифест в Xcode

Для нашего приложения готовый файл выглядит так:

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

Так выглядит код для этого файла:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
 <dict>
  <key>NSPrivacyAccessedAPITypeReasons</key>
  <array>
   <string>85F4.1</string>
  </array>
  <key>NSPrivacyAccessedAPIType</key>
  <string>NSPrivacyAccessedAPICategoryDiskSpace</string>
 </dict>
 <dict>
  <key>NSPrivacyAccessedAPIType</key>
  <string>NSPrivacyAccessedAPICategoryUserDefaults</string>
  <key>NSPrivacyAccessedAPITypeReasons</key>
  <array>
   <string>CA92.1</string>
  </array>
 </dict>
 <dict>
  <key>NSPrivacyAccessedAPIType</key>
  <string>NSPrivacyAccessedAPICategoryFileTimestamp</string>
  <key>NSPrivacyAccessedAPITypeReasons</key>
  <array>
   <string>C617.1</string>
  </array>
 </dict>
 <dict>
  <key>NSPrivacyAccessedAPIType</key>
  <string>NSPrivacyAccessedAPICategorySystemBootTime</string>
  <key>NSPrivacyAccessedAPITypeReasons</key>
  <array>
   <string>35F9.1</string>
  </array>
 </dict>
</array>
</plist>

Заключение

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

Рекомендую прочитать документацию по этой теме, если вам предстоит заполнять манифест приватности:

Другие мои статьи можно почитать тут.






Report Page