iOS17 隐私协议适配详解

06-02 1091阅读

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文件如下图.
  5. iOS17 隐私协议适配详解

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




    NSPrivacyTracking
    
    NSPrivacyCollectedDataTypes
    
    NSPrivacyTrackingDomains
    
    NSPrivacyAccessedAPITypes
    
        
            NSPrivacyAccessedAPIType
            NSPrivacyAccessedAPICategorySystemBootTime
            NSPrivacyAccessedAPITypeReasons
            
                35F9.1
            
        
        
            NSPrivacyAccessedAPIType
            NSPrivacyAccessedAPICategoryDiskSpace
            NSPrivacyAccessedAPITypeReasons
            
                E174.1
            
        
        
            NSPrivacyAccessedAPIType
            NSPrivacyAccessedAPICategoryFileTimestamp
            NSPrivacyAccessedAPITypeReasons
            
                C617.1
            
        
        
            NSPrivacyAccessedAPIType
            NSPrivacyAccessedAPICategoryUserDefaults
            NSPrivacyAccessedAPITypeReasons
            
                CA92.1
            
        
    

对应的plist展示如下iOS17 隐私协议适配详解

  • 隐私清单文件中键值对阐明
    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的代码如下,

      
      
      
      	NSPrivacyTracking
      	
      	NSPrivacyCollectedDataTypes
      	
      	NSPrivacyTrackingDomains
      	
      	NSPrivacyAccessedAPITypes
      	
      		
      			NSPrivacyAccessedAPIType
      			NSPrivacyAccessedAPICategoryFileTimestamp
      			NSPrivacyAccessedAPITypeReasons
      			
      				C617.1
      			
      		
      	
      
      

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

      iOS17 隐私协议适配详解

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

      iOS17 隐私协议适配详解

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

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

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

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码