iOS17 隐私协议适配全流程
Privacy updates for App Store submissions
两句话总结:
- 你自己主工程得有一个PrivacyInfo.xcprivacy文件
- 你用到的第三方库,如果这个库是属于苹果隐私列表里的库,那就得加privacyinfo.xcprivacy文件(要么就是库作者直接加,我们用更新后的库,要么自己download到本地,自己加)
干两件事
第一件:给自己工程添加PrivacyInfo.xcprivacy文件
第二件:给第三方库加privacyinfo.xcprivacy文件
毕竟这都4202年了,能让代码干的事的就代码干
让英雄去查英雄,让好汉去查好汉,让代码去查代码
第一件:
首先我们下载python工具:https://github.com/kimbely0320/update_privacy_info.py?tab=readme-ov-file
这个工具可以知道工程里面用了哪些API
全局装个python3
cd update_privacy_info.py-main
python3 update_privacy_info.py /Users/ly/xxx/xx(项目路径)
运行这个工具,会在项目中得到一个txt文件,一个Privacyinfo.xcprivacy文件
image.png
txt文件中会有哪些文件用到了什么API,哪些库需要做隐私适配
Privacyinfo.xcprivacy文件,已经生成好了相应的隐私清单,我们只需要添加进我们xcode工程
image.png
检查主工程中是否有Privacyinfo.xcprivacy文件存在
image.png
我们自己的工程就有了Privacyinfo.xcprivacy文件
image.png
用到的API,我们还需要填写reason(使用下面的网页工具)
打开https://www.privacymanifest.dev/
我们用到了 User Defaults和 System Boot Time两个API
我们就加这两个
image.png
reason选合适的就行
image.png
直接把35F9.1复制到我们工程的Privacyinfo.xcprivacy文件的reason中
image.png
填完reason后,我们的Privacyinfo.xcprivacy文件就变成这样了
image.png
到这里我们第一件事就完成了
第二件
苹果隐私SDK列表
https://developer.apple.com/cn/support/third-party-SDK-requirements/
如果使用到上面这些里面的SDK
那么就要给第三方SDK加入PrivacyInfo.xcprivacy文件
如果作者有更新,我们直接用最新的即可
比如SDWebImage
如果作者没更新,我们就自己在本地,加一个PrivacyInfo.xcprivacy文件到库里面去就行
遇到的问题
报错:
multiple commands produce privacyinfo.xcprivacy
原因:
就是第三方库和主工程的privacyinfo.xcprivacy冲突了
image.png
解决方案:
方案一:
pod 'SVProgressHUD', :git => "https://github.com/SVProgressHUD/SVProgressHUD.git"
方案二:
自己本地download下来,修改podspec文件
参考:
https://developer.apple.com/news/?id=r1henawx
https://developer.apple.com/cn/support/third-party-SDK-requirements/
https://developer.apple.com/documentation/bundleresources/privacy_manifest_files#428400
https://github.com/kimbely0320/update_privacy_info.py?tab=readme-ov-file //自动检测工具
https://www.privacymanifest.dev/ //隐私清单生成器
https://stackoverflow.com/questions/78247650/multiple-commands-produce-privacyinfo-xcprivacy
网友评论