上传App Store Connect报90906错误缺失WKApplication键值咨询
故障现象
- 向App Store Connect上传iOS应用时操作失败,系统返回错误码
STATE_ERROR.VALIDATION_ERROR.90906,关联ID为e981e416-dc00-41ca-8442-ed1ffb0a8f79 - 系统提示Info.plist缺失必填值:
Runner.app/Runner.app包中必须配置键WKApplication的对应值;若项目包含WatchKit App Extension target,则需配置键WKWatchKitApp的对应值 - 通过Xcode点击Distribute App分发、使用Transporter App执行上传两种操作路径都会触发该报错
- 报错界面如下:

故障根因
该报错属于App Store包结构校验失败,核心原因是上传的IPA包内嵌套了同名Runner.app产物,被苹果的校验逻辑误识别为未做合规配置的WatchKit App,触发了Watch相关的Info.plist字段强校验。这类问题高发于Flutter项目打包配置错误、手动调整Build Phases时误添加拷贝规则、错误引入Watch相关依赖的场景。
正常iOS主Target的Info.plist无需配置WKApplication字段,仅当工程确实包含独立WatchOS App或WatchKit Extension时,才需要配置对应字段。
修复步骤
按以下顺序排查修复,完成后重新打包上传即可:
- 排查嵌套打包配置
打开Xcode选中主工程Target,进入Build Phases标签页:- 展开
Copy Bundle Resources列表,检查是否存在.app格式的编译产物(尤其是Runner.app),如果存在直接删除——编译生成的.app产物属于主包本体,不能作为资源被二次拷贝进主包,否则就会出现Runner.app/Runner.app的嵌套结构 - 同步检查
Embed Frameworks、Embed Watch Content两个阶段的配置,确认没有错误引入非Watch业务相关的.app、WatchKit依赖
- 展开
- 清理无效Watch配置
- 进入主Target的General标签页,找到
Frameworks, Libraries, and Embedded Content列表,删除所有和WatchKit、WatchOS相关的依赖(无Watch业务的项目不需要引入这类依赖) - 检查工程下所有Target的Info.plist文件,没有开发Watch业务的前提下,不要手动添加
WKApplication、WKWatchKitApp字段,多余字段会强制触发苹果服务端的Watch包校验逻辑
若项目确实包含独立WatchOS应用,需给Watch App Target的Info.plist配置
WKApplication = YES,给WatchKit Extension Target的Info.plist配置WKWatchKitApp = YES即可通过校验 - 进入主Target的General标签页,找到
- 清理缓存重新打包
- Flutter项目先执行以下命令清理编译缓存:
flutter clean flutter pub get- Xcode端使用快捷键
Shift + Command + K执行Clean Build Folder,清空DerivedData目录下对应工程的所有缓存文件 - 重新核对签名配置后执行Archive,导出IPA后重新上传
内容的提问来源于stack exchange,提问作者Buchi Emmanuel
相关产品推荐
相关产品推荐

