59. Настраиваем PrivacyInfo.xcprivacy
Oleg991Начиная с 13.03.24, при загрузке приложения в App Store Connect, которое использует перечисленные тут API, вы получите письмо с уведомлением. С 01.05.24 Apple не пропустит приложение без указания причины использования этих API. В этой статье покажу как с этим работать.
Инструкция
Получили письмо:
У нас в приложении такие API не используются в явном виде, но это не важно - письмо пришло и нужно с этим работать.
Обновляем зависимости
В зависимостях, которые активно поддерживаются, ребята уже сделали работу по добавлению манифестов с перечислением причин использования важных API - такие зависимости просто нужно обновить до версии с манифестами:
Добавляем свой манифест
Открываем Xcode и добавляем в проект новый файл:
Заполняем свой манифест
Заполнять лучше по документу от Apple, там буквально перечислены эти же API из письма, и для каждого есть перечень причин использования, из которых нужно выбрать подходящую для вашего приложения.
- Смотрим название категории API в письме от Apple
- Находим эту категорию в документации
- Заполняем манифест в Xcode
Для нашего приложения готовый файл выглядит так:
Так выглядит код для этого файла:
<?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>
Заключение
На мой взгляд ничего сложного в работе нам не добавилось, а пользователям это может пригодиться - чем больше прозрачности со стороны разработчиков, тем лучше.
Рекомендую прочитать документацию по этой теме, если вам предстоит заполнять манифест приватности:
- Анонс требований к сторонним библиотекам на сайте Apple
- Новость от 29.02.24 на сайте Apple
- Документация по манифестам приватности
- Презентация манифестов приватности на WWDC23
Другие мои статьи можно почитать тут.