iOS17 隱私協(xié)議適配全流程
Privacy updates for App Store submissions
兩句話總結(jié):
- 你自己主工程得有一個(gè)PrivacyInfo.xcprivacy文件
- 你用到的第三方庫(kù),如果這個(gè)庫(kù)是屬于蘋果隱私列表里的庫(kù),那就得加privacyinfo.xcprivacy文件(要么就是庫(kù)作者直接加,我們用更新后的庫(kù),要么自己download到本地,自己加)
干兩件事
第一件:給自己工程添加PrivacyInfo.xcprivacy文件
第二件:給第三方庫(kù)加privacyinfo.xcprivacy文件
畢竟這都4202年了,能讓代碼干的事的就代碼干
讓英雄去查英雄,讓好漢去查好漢,讓代碼去查代碼
第一件:
首先我們下載python工具:https://github.com/kimbely0320/update_privacy_info.py?tab=readme-ov-file
這個(gè)工具可以知道工程里面用了哪些API
全局裝個(gè)python3
cd update_privacy_info.py-main
python3 update_privacy_info.py /Users/ly/xxx/xx(項(xiàng)目路徑)
運(yùn)行這個(gè)工具,會(huì)在項(xiàng)目中得到一個(gè)txt文件,一個(gè)Privacyinfo.xcprivacy文件
txt文件中會(huì)有哪些文件用到了什么API,哪些庫(kù)需要做隱私適配
Privacyinfo.xcprivacy文件,已經(jīng)生成好了相應(yīng)的隱私清單,我們只需要添加進(jìn)我們xcode工程
檢查主工程中是否有Privacyinfo.xcprivacy文件存在
我們自己的工程就有了Privacyinfo.xcprivacy文件
用到的API,我們還需要填寫reason(使用下面的網(wǎng)頁(yè)工具)
打開https://www.privacymanifest.dev/
我們用到了 User Defaults和 System Boot Time兩個(gè)API
我們就加這兩個(gè)
reason選合適的就行
直接把35F9.1復(fù)制到我們工程的Privacyinfo.xcprivacy文件的reason中
填完reason后,我們的Privacyinfo.xcprivacy文件就變成這樣了
到這里我們第一件事就完成了
第二件
蘋果隱私SDK列表
https://developer.apple.com/cn/support/third-party-SDK-requirements/
如果使用到上面這些里面的SDK
那么就要給第三方SDK加入PrivacyInfo.xcprivacy文件
如果作者有更新,我們直接用最新的即可
比如SDWebImage
如果作者沒更新,我們就自己在本地,加一個(gè)PrivacyInfo.xcprivacy文件到庫(kù)里面去就行
遇到的問題
報(bào)錯(cuò):
multiple commands produce privacyinfo.xcprivacy
原因:
就是第三方庫(kù)和主工程的privacyinfo.xcprivacy沖突了
解決方案:
方案一:
pod 'SVProgressHUD', :git => "https://github.com/SVProgressHUD/SVProgressHUD.git"
方案二:
自己本地download下來(lái),修改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 //自動(dòng)檢測(cè)工具
https://www.privacymanifest.dev/ //隱私清單生成器
https://stackoverflow.com/questions/78247650/multiple-commands-produce-privacyinfo-xcprivacy