Widget目标PrivacyInfo.xcprivacy上传警告未消除求解决办法
Widget目标PrivacyInfo.xcprivacy配置后仍存在上传警告的解决方案
主应用已配置PrivacyInfo.xcprivacy文件并消除了上传警告,文件内容如下:
<?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>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>85F4.1</string> </array> </dict> <dict> <key>NSPrivacyAccessedAPIType</key> <string>NSPrivacyAccessedAPICategoryFileTimestamp</string> <key>NSPrivacyAccessedAPITypeReasons</key> <array> <string>0A2A.1</string> </array> </dict> <dict> <key>NSPrivacyAccessedAPIType</key> <string>NSPrivacyAccessedAPICategoryUserDefaults</string> <key>NSPrivacyAccessedAPITypeReasons</key> <array> <string>1C8F.1</string> </array> </dict> </array> </dict> </plist>
但为Widget目标添加独立的PrivacyInfo.xcprivacy文件后,上传警告仍未消除,以下是经过验证的解决方案:
确认文件的Target Membership配置
选中Widget目标的PrivacyInfo.xcprivacy文件,在右侧检查器的Target Membership部分,确保只勾选对应的Widget目标,不要误勾选主应用目标;同时确认文件的Location设置为相对于Widget目标的路径,避免路径错误导致文件未被打包。匹配Widget实际使用的API权限
主应用的隐私配置不一定完全适用于Widget,需要排查Widget代码中实际调用的API:- 检查Widget是否使用了主应用配置之外的隐私相关API(比如某些第三方库在Widget中单独引入的API)
- 确认每个API的Reason代码是否准确对应Widget的使用场景,比如
NSPrivacyAccessedAPICategoryUserDefaults的1C8F.1是否符合Widget存储偏好设置的实际用途
清理缓存并重新归档
- 执行
Product > Clean Build Folder清理构建缓存 - 删除
~/Library/Developer/Xcode/DerivedData下对应项目的缓存文件夹 - 重新生成归档文件后再尝试上传,避免旧缓存导致配置未生效
- 执行
检查Widget的构建设置
在Widget目标的Build Settings中,搜索Privacy Manifest相关选项:- 确认
Privacy Manifest File路径正确指向Widget的PrivacyInfo.xcprivacy文件 - 检查
Other Linker Flags等设置是否存在干扰隐私配置打包的参数
- 确认
验证文件格式和编码
确保Widget的PrivacyInfo.xcprivacy文件格式与主应用一致:- 使用UTF-8编码,避免特殊字符或编码错误
- 用Xcode的plist编辑器打开文件,验证XML结构是否完整、无语法错误
确认Widget的签名和配置文件
检查Widget目标的Signing & Capabilities:- 确认使用的配置文件包含正确的权限
- 确保签名身份与主应用一致,避免因签名问题导致隐私配置未被正确识别
内容的提问来源于stack exchange,提问作者gerbil
相关产品推荐
相关产品推荐

