背景
APP提交審核后,郵箱收到了ITMS-91053: Missing API declaration的提示,查看后,發(fā)現(xiàn)是缺少隱私清單的提醒。如下圖:

網(wǎng)上查閱了之后,發(fā)現(xiàn),只有騰訊的這篇 蘋果隱私策略:PrivacyInfo.xcprivacy,比較合用,再結(jié)合下面的圖片,就可以看出用法,和對應(yīng) key 的意義。

image.png
創(chuàng)建 PrivacyInfo.xcprivacy 文件
選中項目一個目錄,Command + N 新建文件,搜索 Privacy,然后選擇類型App Privacy,點擊 Next,再勾選要添加的Target(這里使用默認的文件名稱 PrivacyInfo.xcprivacy),最后點擊 Create,如下圖:

然后選中新建 PrivacyInfo.xcprivacy 文件,右鍵選擇 Open As -> Source Code,如下圖:

然后參考騰訊的這篇蘋果隱私策略:PrivacyInfo.xcprivacy,拷貝里面的內(nèi)容,可以參照郵件提醒缺失的key,選擇添加到PrivacyInfo.xcprivacy中,附錄內(nèi)容如下:
- PrivacyInfo.xcprivacy 文件內(nèi)容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSPrivacyTracking</key>
<false/>
<key>NSPrivacyTrackingDomains</key>
<array/>
<key>NSPrivacyCollectedDataTypes</key>
<array/>
<key>NSPrivacyAccessedAPITypes</key>
<array>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategorySystemBootTime</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>35F9.1</string>
</array>
</dict>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryDiskSpace</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>E174.1</string>
</array>
</dict>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryFileTimestamp</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>C617.1</string>
</array>
</dict>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryUserDefaults</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>CA92.1</string>
</array>
</dict>
</array>
</dict>
</plist>

最后
參照上面理解對應(yīng) key的意義,然后明確使用方法,再結(jié)合項目實際情況,用到了哪些,添加哪些。然后打包提交 APP,送審后,如果收到郵件提示,然后按照提示里提醒缺失了哪些 key,再補充添加即可。
注意如果是用了pushExtension 或者 widget 之類的,也需要添加 PrivacyInfo.xcprivacy 文件,和上面的步驟類似參考郵件提醒缺失的key,選擇添加到 PrivacyInfo.xcprivacy 中。