iOS 审核 5月1日开始 Privacy manifest files 【隐私清单】

这篇具有很好参考价值的文章主要介绍了iOS 审核 5月1日开始 Privacy manifest files 【隐私清单】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

privacyinfo.xcprivacy,Xcode适配指南,iOS 审核指南,xcode,ios
If you upload an app to App Store Connect that uses required reason API without describing the reason in its privacy manifest file, Apple sends you an email reminding you to add the reason to the app’s privacy manifest. Starting May 1, 2024, apps that don’t describe their use of required reason API in their privacy manifest file aren’t accepted by App Store Connect.

如果你上传到app Store Connect的应用程序使用了必要的原因API,而没有在其隐私清单文件中描述原因,苹果会向你发送电子邮件,提醒你将原因添加到应用程序的隐私清单中。从2024年5月1日开始,未在其隐私清单文件中描述其使用所需原因API的应用程序将不被App Store Connect接受。

提醒邮件截图:
privacyinfo.xcprivacy,Xcode适配指南,iOS 审核指南,xcode,ios
解决步骤

  1. 第三方SDK,根据苹果列出的需要添加隐私清单的三方SDK,查看项目中使用了哪些SDK,逐一适配
  2. 主工程新增隐私清单文件,排查使用的API,配置隐私清单文件

一、第三方 SDK

  • 苹果官方列出的需要隐私清单和签名的 SDK,大部分SDK目前作者都添加了Privacy,只需要更新一下SDK就可以啦。
  • 若SDK作者没有维护了,就自己往SDK中添加隐私清单,或者将SDK以手动导入的方式,与主工程共用隐私清单文件

前往查看苹果官方列出的需要添加隐私清单文件的三方SDK

privacyinfo.xcprivacy,Xcode适配指南,iOS 审核指南,xcode,ios

二、项目新增隐私清单文件

2.1 创建privacy文件

创建PrivacyInfo.xcprivacy
选中当前的项目,Command + N,搜索privacy -> 选择App Privacy,输入名称PrivacyInfo.xcprivacy,如下图,选择要添加的Target,然后点击完成。

官方文档创建步骤

privacyinfo.xcprivacy,Xcode适配指南,iOS 审核指南,xcode,ios

PrivacyInfo.xcprivacy文件放置位置

  • 这个没有明确要求,一般是放在Resources目录下

privacyinfo.xcprivacy,Xcode适配指南,iOS 审核指南,xcode,ios

PrivacyInfo.xcprivacy文件
privacyinfo.xcprivacy,Xcode适配指南,iOS 审核指南,xcode,ios

key 说明
Privacy Nutrition Label Types 隐私营养标签,添加的内容会在打包后生成的PDF中
Privacy Accessed API Types 使用的隐私API及原因 describing_use_of_required_reason_api
Privacy Tracking Enabled 布尔值,指示您的应用程序或第三方SDK是否使用应用程序跟踪透明度框架下定义的数据进行跟踪。user-privacy-and-data-use
Privacy Tracking Domains 一组字符串,列出您的应用程序或第三方SDK连接到的参与跟踪的互联网域。如果用户未通过应用程序跟踪透明度框架授予跟踪权限,则对这些域的网络请求将失败,您的应用程序将收到错误. 如果将NSPrivacyTracking设置为true,则需要在NSPrivaceTrackingDomains中至少提供一个internet域;否则,您可以提供零个或多个域。

2.2 如何填写privacy文件

Privacy Nutrition Label Types
  • 你正在收集的数据类型
  • 是否与用户身份相关联
  • 是用于应用或SDK进行追踪
  • 以及你收集数据的原因

privacyinfo.xcprivacy,Xcode适配指南,iOS 审核指南,xcode,ios

按照这个来填写
privacyinfo.xcprivacy,Xcode适配指南,iOS 审核指南,xcode,ios

Privacy Accessed API Types

访问的API类型

  • 按照自身App 使用的API 对照添加

privacyinfo.xcprivacy,Xcode适配指南,iOS 审核指南,xcode,ios

如何定位项目使用的API类型
根据上传App Store 收到的苹果提醒邮件,然后在苹果官方API文档去搜索选择填写的类型
privacyinfo.xcprivacy,Xcode适配指南,iOS 审核指南,xcode,ios

苹果文档列出的访问API类型

Describing use of required reason API

File timestamp APIs
以下用于访问文件时间戳的API需要使用原因。使用stringNSPrivacyAccessed作为NSPrivacy字典中NSPrivacy键的值。

creationDate
modificationDate
fileModificationDate
contentModificationDateKey
creationDateKey
getattrlist(_:_:_:_:_:)
getattrlistbulk(_:_:_:_:_:)
fgetattrlist(_:_:_:_:_:)
stat
fstat(_:_:)
fstatat(_:_:_:_:)
lstat(_:_:)
getattrlistat(_:_:_:_:_:_:)

在您的NSPrivacy数组中,提供此列表中的相关值。

  • DDA9.1
    声明此原因,向使用设备的人显示文件时间戳。
    出于这个原因访问的信息或任何衍生信息不得从设备外发送。
  • C617.1
    声明此原因以访问应用程序容器、应用程序组容器或应用程序的CloudKit容器内文件的时间戳、大小或其他元数据。
  • 3B52.1
    声明此原因以访问用户特别授予访问权限的文件或目录的时间戳、大小或其他元数据,例如使用文档选择器视图控制器。
  • 0A2A.1
    如果您的第三方SDK正在围绕文件时间戳API提供包装函数供应用程序使用,并且您仅在应用程序调用包装函数时访问文件时间戳API,请声明此原因。这个原因只能由第三方SDK声明。如果您的第三方SDK主要是为了包装所需的原因API而创建的,则可能不会声明此原因。
    出于这个原因访问的信息或任何衍生信息不得用于您的第三方SDK自身目的,也不得由您的第三方SDK从设备外发送。

System boot time APIs
以下用于访问系统启动时间的 API 需要使用理由。使用该字符串作为字典中键的值。

  • systemUptime
  • mach_absolute_time()
    在您的数组中,提供下面列表中的相关值。NSPrivacyAccessedAPITypeReasons
  • 35F9.1
    声明此原因以访问系统启动时间,以便测量应用程序内发生的事件之间经过的时间量或执行计算以启用计时器。
    出于此原因访问的信息或任何派生信息可能不会发送到设备外。有关应用程序内发生的事件之间经过的时间量的信息有一个例外,该信息可能会发送到设备外。
  • 8FFB.1
    声明此原因以访问系统启动时间,以计算应用程序内发生的事件的绝对时间戳,例如与UIKit或AVFAudio框架相关的事件。
    您的应用内发生的事件的绝对时间戳可能会发送到设备外。出于此原因访问的系统启动时间或从系统启动时间派生的任何其他信息可能不会发送到设备外。
  • 3D61.1
    声明此原因以在使用设备的人选择提交的可选错误报告中包含系统启动时间信息。系统启动时间信息必须作为报告的一部分显着地向人员显示。
    仅在用户肯定选择提交包括系统启动时间信息的特定错误报告之后,并且仅出于调查或响应错误报告的目的,才可以将出于此原因访问的信息或任何派生信息发送到设备外。

Disk space APIs
以下用于访问可用磁盘空间的 API 需要使用原因。使用该字符串作为字典中键的值。

- volumeAvailableCapacityKey
- volumeAvailableCapacityForImportantUsageKey
- volumeAvailableCapacityForOpportunisticUsageKey
- volumeTotalCapacityKey
- systemFreeSize
- systemSize
- statfs(_:_:)
- statvfs(_:_:)
- fstatfs(_:_:)
- fstatvfs(_:_:)
- getattrlist(_:_:_:_:_:)
- fgetattrlist(_:_:_:_:_:)
- getattrlistat(_:_:_:_:_:_:)

在您的数组中,提供下面列表中的相关值。NSPrivacyAccessedAPITypeReasons

  • 85F4.1
    声明此原因以向使用该设备的人员显示磁盘空间信息。磁盘空间可以以信息单位(例如字节)或与媒体类型结合的时间单位(例如高清视频的分钟)来显示。
    出于此原因访问的信息或任何派生信息可能不会发送到设备外。有一个例外,允许应用程序通过本地网络将磁盘空间信息发送到同一个人操作的另一台设备,仅用于显示该设备上的磁盘空间信息;此例外仅适用于用户明确允许发送磁盘空间信息的情况,并且该信息不得通过 Internet 发送。
  • E174.1
    声明此原因是为了检查是否有足够的磁盘空间来写入文件,或者检查磁盘空间是否不足,以便应用程序可以在磁盘空间不足时删除文件。应用程序必须根据磁盘空间以用户可观察到的方式表现不同。
    出于此原因访问的信息或任何派生信息可能不会发送到设备外。有一个例外,允许应用程序在磁盘空间不足时避免从服务器下载文件。
  • 7D9E.1
    声明此原因以在使用设备的人员选择提交的可选错误报告中包含磁盘空间信息。磁盘空间信息必须作为报告的一部分突出地显示给相关人员。
    仅在用户明确选择提交包括磁盘空间信息的特定错误报告之后,并且仅出于调查或响应错误报告的目的,因此访问的信息或任何派生信息才可以发送到设备外。
  • B728.1
    如果您的应用程序是健康研究应用程序,并且您访问此 API 类别来检测并通知研究参与者磁盘空间不足影响研究数据收集,请声明此原因。
    您的应用程序必须符合应用程序商店审核指南§5.1.3。除了提供有关健康研究的信息并允许人们参与健康研究之外,您的应用程序不得提供任何其他功能。

Active keyboard APIs
以下用于访问活动键盘列表的 API 需要使用原因。使用该字符串作为字典中键的值。

  • activeInputModes
    在您的数组中,提供下面列表中的相关值。NSPrivacyAccessedAPITypeReasons
  • 3EC4.1
    如果您的应用程序是自定义键盘应用程序,并且您访问此 API 类别以确定设备上处于活动状态的键盘,请声明此原因。
    为用户提供系统范围的自定义键盘必须是应用程序的主要功能。
    出于此原因访问的信息或任何派生信息可能不会发送到设备外。
  • 54BD.1
    声明此原因以访问活动键盘信息,以便向使用该设备的人员呈现正确的自定义用户界面。应用程序必须具有用于输入或编辑文本的文本字段,并且必须以用户可观察到的方式根据活动键盘采取不同的行为。
    出于此原因访问的信息或任何派生信息可能不会发送到设备外。

User defaults APIs

以下用于访问用户默认值的 API 需要使用原因。使用该字符串作为字典中键的值。

  • UserDefaults
    在您的数组中,提供下面列表中的相关值。NSPrivacyAccessedAPITypeReasons
  • CA92.1
    声明此原因以访问用户默认读取和写入只能由应用程序本身访问的信息。
    此原因不允许读取其他应用程序或系统写入的信息,或写入可由其他应用程序访问的信息。
  • 1C8F.1
    声明此原因以访问用户默认值以读取和写入仅可由与应用程序本身属于同一应用程序组的成员的应用程序、应用程序扩展和应用程序剪辑访问的信息。
    此原因不允许读取由同一应用程序组外部的应用程序、应用程序扩展或应用程序剪辑或系统写入的信息。如果系统提供来自全局域的信息,则您的应用程序不承担责任,因为当您的应用程序尝试读取应用程序的应用程序组中的应用程序、应用程序扩展或应用程序剪辑写入的信息时,您请求的域中不存在密钥。
    此原因也不允许写入可由同一应用程序组外部的应用程序、应用程序扩展或应用程序剪辑访问的信息。
  • C56D.1
    如果您的第三方 SDK 围绕用户默认 API 提供包装函数供应用程序使用,并且您仅在应用程序调用您的包装函数时才访问用户默认 API,请声明此原因。此原因只能由第三方 SDK 声明。如果您的第三方 SDK 主要是为了包装所需的原因 API 而创建的,则可能不会声明此原因。
    出于此原因访问的信息或任何派生信息不得用于第三方 SDK 自身的目的,也不得由第三方 SDK 发送至设备外。
  • AC6B.1
    声明此原因以访问用户默认读取密钥以检索 MDM 设置的托管应用程序配置,或设置密钥以存储要通过 MDM 查询的反馈信息,如 Apple 移动设备管理协议参考文档中所述。
Privacy Tracking Enabled

你必须声明你的应用(或其中使用的第三方SDK)是否使用应用追踪透明度框架定义的数据进行追踪。如果是,则必须将 NSPrivacyTracking 设置为 true。
苹果将追踪定义为将你收集的数据与其他公司收集的其他用户或设备数据相关联。
定义如下:
追踪是指将从你的应用程序收集的用户或设备数据与从其他公司的应用程序、网站或离线资产收集的用户或设备数据相关联的行为,用于有针对性的广告或广告测量目的。追踪还指与数据代理共享用户或设备数据。 苹果提供了以下追踪示例:

  • 广告的行为定位
  • 与数据代理共享位置或电子邮件
  • 创建和共享受众
  • 设备图形生成
    苹果提供了一些不被视为追踪的数据收集示例:
  • 数据保留在设备上
  • 仅用于欺诈检测/安全的数据
  • 用于信用评分的数据 据推测,还有更多类型的数据收集未被定义为追踪,只要你不将应用或SDK收集的数据与其他公司的数据相关联,或者不将你的数据出售给数据代理。
Privacy Tracking Domains

首先列出要通过 NSPrivacyTrackingDomains 数组向其发送数据的域。这只是你的应用或SDK连接到的网址列表,有助于追踪。
重点:
如果你连接到追踪域,但用户尚未通过应用追踪透明度授予追踪权限,苹果将阻止对这些网址的任何调用。
如果用户未通过应用追踪透明度框架授予追踪权限,则对这些域的网络请求将失败,并且你的应用会收到错误。

由于在这里填的这些域,如果用户没有授权,那么这个域的网络请求将失败,稳妥起见这里先不填写域,先这样处理 提审看看情况了来。

privacyinfo.xcprivacy,Xcode适配指南,iOS 审核指南,xcode,ios

总结

按照上面的步骤处理后,我上传appStore 提审,现在没有收到苹果关于隐私清单的提醒邮件了,暂时就先这样配置,不知道大家是怎么填写 Privacy Tracking Enabled 和 Privacy Tracking Domains 这两个类型的呢?
注意: 在选择原因的时候,必须要选择对应类型下的原因


感谢您的阅读和参与,HH思无邪愿与您一起在技术的道路上不断探索。如果您喜欢这篇文章,不妨留下您宝贵的赞!如果您对文章有任何疑问或建议,欢迎在评论区留言,我会第一时间处理,您的支持是我前行的动力,愿我们都能成为更好的自己!文章来源地址https://www.toymoban.com/news/detail-848000.html

到了这里,关于iOS 审核 5月1日开始 Privacy manifest files 【隐私清单】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 通过manifest清单导入项目到gitlab中

    从gitlab 11.2引入此功能。 GitLab 允许根据manifest清单文件(如 Android 存储库使用的清单文件)导入所需的 Git 存储库。 GitLab 必须对其数据库使用 PostgreSQL。 至少是要导入到的目标组上的维护者角色。将开发人员角色用于此目的已在 GitLab 15.8 中弃用,并将在 GitLab 16.0 中删除。

    2024年01月19日
    浏览(37)
  • 【微信小程序 uniapp】 ws-wx-privacy 微信隐私保护弹出框 隐私协议弹出框

    插件地址 (https://mp.weixin.qq.com/wxamp/basicprofile/index?token=1956320193lang=zh_CN) 4. 将调试基础库改为 3.0.0以上。 微信开发者工具-详情-本地设置-调试基础库 5. 页面 使用示例 仅有在指引中 声明所处理的用户信息 ,才可以调用平台提供的对应接口或组件。若未声明,对应接口或组件将

    2024年02月08日
    浏览(41)
  • Repo manifests默认default.xml清单文件中的各个标签详解

    Repo简介 “Repo” 是一个用于管理多个Git存储库的工具,通常与Google的Android开发项目一起使用。它允许您在一个命令下轻松地进行多个Git存储库的同步、下载和管理。 repo下载安装 从清华镜像源下载 其实下载下来的repo文件只是一个使用Python编写的引导脚本(Google 称之为 Rep

    2024年02月11日
    浏览(29)
  • 用户隐私问题小程序审核不通过,微信小程序隐私保护开发指南

    目录 小程序隐私协议开发指南 一、功能介绍 二、接入流程 1. 配置《小程序用户隐私保护指引》 2. 主动查询隐私授权同步状态以及展示隐私协议 3. 被动监听隐私接口需要用户授权事件 4. 清空历史同步状态 三、其他说明 四、完整示例demo 五、常见错误说明 uniapp小程序特别指

    2024年02月04日
    浏览(40)
  • 微信小程序提交审核用户隐私协议怎么写?

    今天给大家出个隐私协议的模板供大家参考,内容如下: 为了分辨用户,开发者将在获取你的明示同意后,收集你的微信昵称、头像 为了显示距离,开发者将在获取你的明示同意后,收集你的位置信息。 开发者收集你的地址,用于获取位置信息。 开发者收集你的发票信息,

    2024年02月06日
    浏览(49)
  • 微信小程序用户隐私保护指引fail api scope is not declared in the privacy agreement

    今天突然小程序登录不了,后台报错“The given payload is invalid.”但是小程序这边流程是正确的,绝对没错的,找了半天想起来看看wx.login的报错,结果显示:“fail api scope is not declared in the privacy agreement”,于是就去更新了用户协议,但是更新了还不对,才发现微信 于是就去查

    2024年02月06日
    浏览(144)
  • 微信小程序审核,隐私协议中开发者处理信息填写的内容参考

    为了分辨用户,开发者将在获取你的明示同意后,收集你的微信昵称、头像 为了显示距离,开发者将在获取你的明示同意后,收集你的位置信息。 开发者收集你的地址,用于获取位置信息。 开发者收集你的发票信息,用于维护消费功能。 为了用户互动,开发者将在获取你的

    2024年02月08日
    浏览(45)
  • 【人工智能】Responsible AI 负责任的人工智能:人工智能安全和隐私的未来 The Future of AI Security and Privacy

      While AI development was mostly in the realm of research, practices such as sharing open datasets, publishing models publicly, and using any compute resources available all helped drive forward the state of the art. AI is now increasingly deployed in production environments in the commercial, healthcare, government, and defense sectors and Intel provides

    2023年04月09日
    浏览(36)
  • Invalid signature file digest for Manifest main attributes

    网上找的资料说是由于有些依赖中重复引用了某个包,以至于打包之后的META-INF的目录下多出了一些*.SF, .DSA, .RSA文件所致,可手动删除这些问题后,再执行jar包 通过java指令执行jar包,提示Invalid signature file digest for Manifest main attributes 通过压缩软件查看程序生成的jar包,可以看

    2024年02月07日
    浏览(34)
  • iOS上架报错:无法添加以供审核

    您在提交 app 审核时遇到的问题是因为需要提供版权信息,而您的 app 缺少相关的版权信息。以下是解决此问题的步骤: 确认您是否拥有 app 的版权:在提交 app 之前,您必须确认您拥有 app 的版权或已获得版权持有人的授权。如果您没有版权或未经授权,您将无法通过审核。

    2024年02月12日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包