XCode运行代码出现Assertion Failure,App Store应用验证失败求解决
App Store验证Assertion Failure解决思路
从错误截图的信息来看,核心问题是应用启动完成时窗口未设置根视图控制器(Application windows are expected to have a root view controller at the end of application launch),以下是针对性解决步骤:
检查AppDelegate启动方法
打开AppDelegate.m/AppDelegate.swift,确保application:didFinishLaunchingWithOptions:中正确设置rootViewController:- Objective-C:不要用
[self.window addSubview:vc.view],改为self.window.rootViewController = vc;,并调用[self.window makeKeyAndVisible]; - Swift:确保
window?.rootViewController = vc,并执行window?.makeKeyAndVisible()
- Objective-C:不要用
核对Info.plist配置
- 若使用iOS 13+的SceneDelegate,确认
UIApplicationSceneManifest下的UISceneConfigurations配置正确,指定了对应的UISceneDelegate类和storyboard - 未使用SceneDelegate的话,直接移除Info.plist中的
UIApplicationSceneManifest项,避免系统启动逻辑冲突
- 若使用iOS 13+的SceneDelegate,确认
检查Storyboard设置
- 在Xcode项目General标签下,确认
Main Interface指定了正确的storyboard文件 - 打开对应storyboard,确保目标视图控制器的
Is Initial View Controller选项已勾选
- 在Xcode项目General标签下,确认
清理项目缓存
- 执行
Cmd+Shift+K清理项目,再用Cmd+Shift+Option+K清理构建缓存 - 重启Xcode和测试设备,重新构建打包
- 执行
排查自定义启动逻辑
如果有第三方库初始化、延迟加载等自定义启动流程,检查是否存在阻塞窗口根控制器赋值的异常逻辑,保证启动流程能正常完成根控制器设置
内容的提问来源于stack exchange,提问作者xdev
相关产品推荐
相关产品推荐

