Flutter项目App Store审核ITMS-91053:缺失API声明问题问询
ITMS-91053 问题整改步骤及合规要点
一、具体整改步骤
1. 定位API引用来源
- 用Xcode的「Find in Project」功能,搜索
NSPrivacyAccessedAPICategoryFileTimestamp、NSPrivacyAccessedAPICategorySystemBootTime、NSPrivacyAccessedAPICategoryDiskSpace、NSPrivacyAccessedAPICategoryUserDefaults对应的具体调用(比如fileCreationDate、systemUptime、NSFileSystemFreeSize、UserDefaults相关方法),排查是项目代码直接调用还是第三方依赖库间接触发的。 - 重点检查项目中集成的统计、工具类SDK,这类API调用常来自第三方依赖。
2. 创建/更新隐私清单文件
- 若项目无
PrivacyInfo.xcprivacy文件,右键项目 → 「New File」→ 搜索「Privacy Info File」添加。 - 打开文件切换到「Source Code」模式,添加
NSPrivacyAccessedAPITypes数组结构,示例如下:
<key>NSPrivacyAccessedAPITypes</key> <array> <!-- 此处逐个添加四个API类别的声明项 --> </array>
3. 填写合规使用理由
针对每个API类别,根据实际使用场景选择对应理由代码并补充清晰描述:
NSPrivacyAccessedAPICategoryFileTimestamp:
理由代码选3C8F.1,描述示例:「用于识别缓存文件的创建时间,定期清理过期缓存以释放设备存储空间」NSPrivacyAccessedAPICategorySystemBootTime:
理由代码选7D9E.1,描述示例:「用于统计应用启动后的运行时长,优化性能监控逻辑」NSPrivacyAccessedAPICategoryDiskSpace:
理由代码选E1C4.1,描述示例:「用于检查设备剩余存储空间,确保应用有足够空间存储用户数据和下载资源」NSPrivacyAccessedAPICategoryUserDefaults:
理由代码选CA92.1,描述示例:「用于存储用户的应用偏好设置(如主题、语言选择),提升用户使用体验」
4. 验证并重新提交
- 保存隐私清单后编译项目,确认无语法错误。
- 重新打包应用上传至App Store Connect,检查是否仍有ITMS-91053提示。
二、合规要点
- 理由必须真实准确:禁止编造使用场景,Apple会抽查验证,虚假理由可能导致审核被拒甚至账号处罚。
- 剔除不必要的API调用:若API调用来自非必要的第三方依赖,考虑替换依赖库或禁用相关功能,减少隐私声明的复杂度。
- 描述需具体清晰:不能用模糊表述(如「用于应用功能」),必须明确说明API的具体用途,让审核人员清楚了解使用场景。
- 同步更新隐私清单:后续应用新增需声明的API调用时,要及时更新隐私清单,避免再次触发ITMS提示。
内容的提问来源于stack exchange,提问作者odin.dev
相关产品推荐
相关产品推荐

