当前位置: 首页 > news >正文

iOS17 隐私协议适配详解

1. 背景

        网上搜了很多文章,总算有点头绪了。其实隐私清单最后做出来就是一个plist文件。找了几个常用三方已经配好的看了看,比着做就好了。

WWDC23 中关于隐私部分的更新(WWDC23 隐私更新官网),其中提到了第三方 SDK 的隐私清单和签名,并且要求开发者自 2024 年春季开始,新发布的 app 或者 app 更新中携带的第三方 SDK 需要提供隐私清单,如果 SDK 是以二进制形式依赖的话,则同时需要提供签名。。

当你准备分发 App 时,Xcode 会将 App 使用的所有第三方 SDK 的隐私清单合并为一个简单易用的报告。

这个报告内容全面,总结了 App 中的所有第三方 SDK,让你能够更轻松地创建更准确的隐私标签。

因此嵌入 App 的 SDK 和三方库都需要包含 PrivacyInfo.xcprivacy 。

二、 下面开始创建 隐私清单  (privacy manifest)的创建

  1. Xcode升级到Xcode15版本及以上
  2. 新建文件 Cmd + N
  3. 选择 APP Privacy 选项(往下滑到Resource选项里)
  4. privacy文件如下图.

privacy文件的源代码如下。在xcode里选择open as ——> souce code显示如下。 open as :ASCII Property List如上图 显示为plist格式。这个是腾讯即时通信的清单 open as code如下

<?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">
<dict><key>NSPrivacyTracking</key><false/><key>NSPrivacyCollectedDataTypes</key><array/><key>NSPrivacyTrackingDomains</key><array/><key>NSPrivacyAccessedAPITypes</key><array><dict><key>NSPrivacyAccessedAPIType</key><string>NSPrivacyAccessedAPICategorySystemBootTime</string><key>NSPrivacyAccessedAPITypeReasons</key><array><string>35F9.1</string></array></dict><dict><key>NSPrivacyAccessedAPIType</key><string>NSPrivacyAccessedAPICategoryDiskSpace</string><key>NSPrivacyAccessedAPITypeReasons</key><array><string>E174.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>NSPrivacyAccessedAPICategoryUserDefaults</string><key>NSPrivacyAccessedAPITypeReasons</key><array><string>CA92.1</string></array></dict></array>
</dict>
</plist>

对应的plist展示如下

  • 隐私清单文件中键值对阐明
Key阐明
NSPrivacyTracking布尔值,指示您的应用程序或第三方SDK是否运用应用程序盯梢透明度结构下定义的数据进行盯梢。官方文档
NSPrivacyTrackingDomains一组字符串,列出您的应用程序或第三方SDK连接到的参加盯梢的互联网域。如果用户未通过应用程序盯梢透明度结构授予盯梢权限,则对这些域的网络恳求将失利,您的应用程序将收到错误. 如果将NSPrivacyTracking设置为true,则需求在NSPrivaceTrackingDomains中至少供给一个internet域;否则,您可以供给零个或多个域。
NSPrivacyCollectedDataTypes一组字典,用于描绘应用程序或第三方SDK搜集的数据类型。有关要在字典中运用的键和值的信息,请参阅描绘隐私清单中的数据运用。
NSPrivacyAccessedAPITypes运用了苹果需求阐明原因的api时需求填写,请参阅描绘所需原因API的运用。

required reason API 相关的 API 大概涉及:

  • File timestamp APIs
  • System boot time APIs
  • Disk space APIs
  • Active keyboard APIs
  • User defaults APIs

具体列表可查看 Apple 官网说明:查看api名称和使用的理由Describing use of required reason API | Apple Developer Documentation

我们根据自己app的情况添加,上面示例的代码中 ,使用的API,比如我们可能只用了NSUSerdefaluts ,所以只添加这个就行,其他的自己根据官网酌量添加api名称和使用原因。

下面咱们看几个第三方的隐私清单是怎么处理的。比如 SDWebImage  ,SD的代码如下,

<?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">
<dict><key>NSPrivacyTracking</key><false/><key>NSPrivacyCollectedDataTypes</key><array/><key>NSPrivacyTrackingDomains</key><array/><key>NSPrivacyAccessedAPITypes</key><array><dict><key>NSPrivacyAccessedAPIType</key><string>NSPrivacyAccessedAPICategoryFileTimestamp</string><key>NSPrivacyAccessedAPITypeReasons</key><array><string>C617.1</string></array></dict></array>
</dict>
</plist>

plist长这样,看SD它就加了一个 File Timestamp

使用原因苹果官网的示例图

 签名我们不用管。因为如果 SDK 是以二进制形式依赖的话,则同时需要提供签名。

参考文章,可以看融云和腾讯即时通信的添加步骤即时通信 IM 苹果隐私策略:PrivacyInfo.xcprivacy-协议与认证-文档中心-腾讯云

【重要通知】关于 2024 春季 iOS 隐私清单的通知 - iOS - 融云开发者帮助中心

http://www.lryc.cn/news/330391.html

相关文章:

  • LeetCode 每日一题 Day 116-122
  • linux离线安装jenkins及使用教程
  • NXP-S32DS软件安装
  • 26版SPSS操作教程(初级第十五章)
  • docker部署实用的运维开发手册
  • Oracle VM(虚拟机)性能监控工具
  • 1.8 python 模块 time、random、string、hashlib、os、re、json
  • iOS苹果签名共享签名是什么以及如何获取?
  • python爬虫下载音乐
  • HarmonyOS实战开发-一次开发,多端部署-视频应用
  • 关于v114之后的chromedriver及存放路径
  • http模块 服务器端如何响应(获取)静态资源?
  • 基于PHP的校园招聘管理系统
  • LLMs 可能在 2 年内彻底改变金融行业
  • nodejs 中 yarn的安装和使用
  • 软件工程学习笔记14——案例解析篇
  • 【文件操作API的使用】
  • C++ 让类只在堆或栈上分配
  • SpringMVC源码分析(九)--返回值解析器
  • 京西商城——创建订单和获取订单接口
  • 大话设计模式之模板方法模式
  • 新model开发记录
  • ARMday1
  • 【C++风云录】创造视觉奇迹:探索C++图形编程的魅力与可能性
  • 常见的Nginx+Redis+MQ+DB架构设计
  • vue+elementUI搭建动态表头的表格
  • 【ENSP】交换机和交换机之间实现静态路由
  • 2024.2.18力扣每日一题——N叉树的前序遍历
  • Taro活动列表中,对某一个活动添加分享按钮
  • 深入理解计算机系统 家庭作业 2.65