Flutter iOS应用提交仍遭ITMS-91053 API声明缺失警告求排查
问题排查与解决步骤
- 移除无效的空字典节点
你的PrivacyInfo.xcprivacy文件中,<array>标签下存在一个空的<dict/>节点,这会导致苹果的解析工具无法正确识别API声明内容。修改后的正确文件内容如下:
<?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>NSPrivacyAccessedAPICategoryFileTimestamp</string> <key>NSPrivacyAccessedAPITypeReasons</key> <array> <string>DDA9.1</string> </array> </dict> </array> </dict> </plist>
确保文件被正确关联到Runner Target
仅把文件放在iOS目录下是不够的,必须将其添加到Xcode项目的Runner目标中:- 打开iOS目录下的
Runner.xcworkspace - 在左侧项目导航栏右键点击
Runner目录,选择「Add Files to "Runner"」 - 选中修改后的
PrivacyInfo.xcprivacy,勾选「Copy items if needed」,并确认「Add to targets」中Runner已被勾选 - 选中该文件,在右侧检查器中确认「Target Membership」下的
Runner选项处于勾选状态
- 打开iOS目录下的
清理缓存后重新构建
执行flutter clean清理旧的构建缓存,再通过flutter build ipa重新打包,避免使用缓存中未更新的配置文件。验证理由代码的合规性
确认DDA9.1是否匹配你的应用使用文件时间戳的实际场景:该代码对应「用于调试、诊断或性能监控的文件时间戳访问」。如果你的应用是用于文件管理等其他场景,需更换为对应的合规理由代码(如C617),否则即使声明也可能无法通过审核。
内容的提问来源于stack exchange,提问作者James
相关产品推荐
相关产品推荐

