苹果隐私清单PrivacyInfo.xcprivacy 调研及解决方式

Apple PrivacyInfo.xcprivacy 苹果隐私清单调研

1.在苹果强制执行的SDK名单中的,以framework形式存在的SDK必须包含自己的隐私清单和签名

2.在苹果强制执行的SDK名单中的,以源码文件存在的,无需处理(若作者有更新,也可以适当更新)

3.应用程序自己的清单文件PrivacyInfo.xcprivacy 使用默认名,不可重命名,否则无法导出隐私报告

4.隐私清单的包含项,苹果列举出五项隐私API(用到那个声明那个)至于Privacy Nutrition Label Types的配置,一般SDK是不填写这些的,除了音视频,地图这些大的SDK,但是应用程序自身的隐私清单,这里必须设置,因为一般app,邮箱,用户id,大概地理位置,照片和视频,崩溃数据采集这些总该用到吧,参照:https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_data_use_in_privacy_manifests 设置此项即可,Linked to User和Used for Tracking 基本设置为NO,但是邮箱和电话这两个场景是否链接用户看你实际场景下的作用。基本不向用户发广告就设置NO即可

5.Extension扩展库如push或者widget之类的,也需要添加PrivacyInfo.xcprivacy文件
示例:推送扩展库NotificationService,这些本质上属于一个新的target,除了所内部引入的三方库有自己的清单外(个推,友盟,极光)扩展库自己也要有清单文件,哪怕你什么隐私api和追踪透明度都没用到,也要有这样的文件,大不了Privacy Tracking Enabled设置为NO,其他项不设置,切记,切记。参考下面邮件所述

WechatIMG3188.jpg

6.苹果鼓励所有SDK都遵循此项新规,如果不属于苹果列举的强制执行名单的SDK,官方或作者已有更新,则根据自己情况看是否想去更新。

7.纯OC项目无需在pod中引入 user_frameworks! 否则需解决报错。

8.项目自己的隐私清单创建后使用默认名,决不允许更改名字,否则将无法导出隐私报告

总结:在苹果规定的强制执行名单中的,且以framework形式存在的SDK必须有自己的签名和隐私清单,哪怕这个SDK什么隐私API都没使用,也要有一份清单仅设置Privacy Tracking Enabled为NO,其他项不设置即可。

至于其他在名单中,但是链接形式是源码文件的,无需处理,如果作者已更新,你也可以去更新,至于踩坑点,本文已全部记录。

如果你是swift混编,所有源码文件最终是framework静态库链接的,如果作者实在没更新,就手动把源码拖入项目即可。

怎么检查你的清单加好了呢???直接archive,查看你的隐私报告,然后对archive后的包选择查看包内容,最终进入app的包里,苹果要求的sdk的boundle内有隐私清单即可

注意点
1.SDCycleScrollView和WMZBanner 内部会默认引入SDWebImage,如后续SD需手动导入项目维护时,这两个类库也一并改为手动
2.微信2.4.0framework版本包含清单文件,但.a库版pod后不包含
3.MBProgressHUD / Reachability / SVProgressHUD 不要拉取最新版本分支,直接拉取master,作者把清单文件添加在了master
4.BAPickView,BAKit.h中第65行的NSLog会和项目宏定义的NSLog冲突,可能出现控制台无法打印,更新后可手动注释

这三个库不要拉取指定的最新版本,否则不包含隐私清单,直接拉取master的最新代码,作者这货直接加在了master,目前对应的git上的issue很多开发者还在问作者如何解决,本人踩坑一天才发现这货加在了master
如果你指定更新最新版本的分支会出现:
SVProgressHUD的清单文件和你自己创建的路径冲突报错,MBProgressHUD和Reachability更新后没有清单文件

正确pod方式:
pod 'MBProgressHUD',:git => 'https://github.com/jdg/MBProgressHUD.git'
pod 'SVProgressHUD', :git => 'https://github.com/SVProgressHUD/SVProgressHUD.git'
pod 'Reachability', :git => 'https://github.com/tonymillion/Reachability.git'

最后附上我的pod文件和隐私清单文件
(注意这些类型按照上面的高亮链接结合自己app去比对,要写全,使用目的基本写app功能即可,除非你真的有个性化推荐等其他用途。社区类app,社交类app需要关注有没有个性化推荐,其他用户生成内容等等。至于是否跟踪用户我设置的NO,即便你真的跟踪了,也建议设置为NO,关于手机号注册登录,相册拍照,分享等这些场景,链接用户设为YES即可)

截屏2024-04-08 13.29.02.png
截屏2024-04-08 13.29.23.png

隐私报告

WechatIMG11.jpg

我更新了的源码库清单文件(源码库可选更,不做强制)

WechatIMG10.jpg

我的pod文件

截屏2024-04-07 19.03.02.png
截屏2024-04-07 19.03.09.png

最后附上 某大厂的内部调研


截屏2024-04-07 19.07.20.png
截屏2024-04-07 19.07.26.png
截屏2024-04-07 19.07.32.png
截屏2024-04-07 19.07.40.png

注意:target下只要存在隐私清单且所使用的隐私api描述完整,提审时就不会再次收到邮件。

但如果你没填写Privacy Nutrition Label Types,即:根据苹果文档要求的场景,列举追踪了那些数据,未来审核是否被拒并不确定,建议认真梳理填写此项。
target,只要是宿主工程,子工程,扩展库,weight小组件这些本质都属于target。

对于你的三方库是framework静态库或.a静态库且在苹果要求名单中,但是作者并未更新的,建议不作处理。根据上述(target下只要存在隐私清单且所使用的隐私api描述完整,提审时就不会再次收到邮件)应该不会有问题。不建议大改

如果需要修改,如果你的库是.a静态库,一律转为framework静态库,因为二者区别是framework对比.a允许捆绑静态资源。这时候可以自己为其签名并增加隐私清单。即便没使用隐私api也要有隐私清单,Privacy Tracking Enabled设为NO即可。最后手动拖入你的项目,如果你仍然想pod管理,则再打包为私有库。如何签名和转framework,随便去git的开源库下,作者基本都有说明。如SVProgress等

参考资料:
https://cloud.tencent.com/developer/article/2397182

https://cloud.tencent.com/document/product/269/104138

https://help.aliyun.com/zh/apsara-video-sdk/support/mediabox-audio-and-video-sdk-apple-privacy-policy-privacyinfo-xcprivacy-protocol-and-authentication

https://blog.csdn.net/ZuoYueLiang/article/details/137009615

最后烦请点赞,评论~ 晚8点请打开《和平精英》我在S城第二个房间等你喔!!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,013评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,205评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,370评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,168评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,153评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,954评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,271评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,916评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,382评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,877评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,989评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,624评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,209评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,199评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,418评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,401评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,700评论 2 345

推荐阅读更多精彩内容