Flutter应用上传TestFlight遇ITMS-91053缺失API声明问题求助
解决ITMS-91053:添加UserDefaults和DiskSpace API隐私声明的具体操作
针对你的Flutter应用,直接用Xcode完成隐私清单配置的步骤如下:
1. 打开iOS项目工程
在Flutter项目根目录,执行终端命令:
open ios/Runner.xcworkspace
或者直接在Finder里找到ios/Runner.xcworkspace双击打开。
2. 创建隐私清单文件
- 在Xcode左侧项目导航栏,右键点击
Runner文件夹,选择「New File...」 - 搜索「Property List」模板,选中后点击「Next」
- 文件名输入
PrivacyInfo.xcprivacy,保存位置选Runner文件夹,确保目标勾选Runner,点击「Create」
3. 编辑隐私声明内容
- 点击刚创建的
PrivacyInfo.xcprivacy文件,点击右上角「Show Raw Keys/Values」切换到原始键值编辑模式 - 添加顶级键
NSPrivacyAccessedAPITypes,类型选择「Array」 - 给数组添加第一个元素(Item 0):
- 展开Item 0,添加键
NSPrivacyAccessedAPIType,值设为NSPrivacyAccessedAPICategoryUserDefaults - 添加键
NSPrivacyAccessedAPITypeReasons,类型选「Array」,添加元素值为CA92.1(对应场景:存储应用配置、推送状态、网络状态等非用户识别信息,匹配你用Firebase推送、网络检测的需求)
- 展开Item 0,添加键
- 给数组添加第二个元素(Item 1):
- 展开Item 1,添加键
NSPrivacyAccessedAPIType,值设为NSPrivacyAccessedAPICategoryDiskSpace - 添加键
NSPrivacyAccessedAPITypeReasons,类型选「Array」,添加元素值为E174.1(对应场景:管理应用缓存、存储导入的JSON/HTML数据,匹配你加载远程数据、WebView缓存的需求)
- 展开Item 1,添加键
4. 验证文件格式(可选)
右键点击PrivacyInfo.xcprivacy,选择「Open As」->「Source Code」,确认内容类似以下格式:
<?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>NSPrivacyAccessedAPICategoryUserDefaults</string> <key>NSPrivacyAccessedAPITypeReasons</key> <array> <string>CA92.1</string> </array> </dict> <dict> <key>NSPrivacyAccessedAPIType</key> <string>NSPrivacyAccessedAPICategoryDiskSpace</string> <key>NSPrivacyAccessedAPITypeReasons</key> <array> <string>E174.1</string> </array> </dict> </array> </dict> </plist>
5. 重新打包上传
- 在Xcode中确认签名证书和Provisioning Profile配置正确
- 执行「Product」->「Archive」,完成归档后在Organizer中选择该归档,点击「Distribute App」,选择「TestFlight & App Store」按流程上传即可
内容的提问来源于stack exchange,提问作者Delmontee
相关产品推荐
相关产品推荐

