首页 > 解决方案 > Xcode 11 在捆绑包 NSBundle 中找不到名为“Main”的情节提要

问题描述

这个问题之前已经被问过,但我的问题是 Xcode 11 和UISceneConfiguration. 在 Xcode 11 之前,当您从目标中删除故事板 ( Main.storyboard),然后添加新的 ( AnotherStoryboard.storyboard) 时,您必须更新Targets > General > Deployment Info > Main Interface以使用新添加的故事板。在 Xcode 11 中,这还不够,应用程序会抛出异常

*** Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: 'Could not find a storyboard named 'Main' in bundle NSBundle

我发现的问题是,Info.plist现在有一个名为的新键UIApplicationSceneManifest,其中有一个嵌套UISceneStoryboardFile,当您更改目标中的主界面时,它正在更新。UIMainStoryboardFile然而,顶层仍然有一个关键Info.plist是持有旧的“主要”故事板的标题。长话短说,如果您删除UIMainStoryboardFile,该应用程序将运行良好。

我的问题:这是 Xcode 11 中的错误,还是我遗漏的其他东西可以防止这种情况发生?当我尝试调试它并最终自己解决时,我并没有真正找到任何有用的东西。

标签: iosswiftxcodestoryboardxcode11

解决方案


在你的info.plist Main文件中设置Scene Configuration,所以它总是找到那个文件并抛出异常。您可以ViewController以编程方式设置默认值。在您的info.plist设置Scene ConfigurationDefault configuration并选择无进入Targets> General> Deployment Info> Main Interface

你的sceneWillConnectTo样子

  window = UIWindow(frame: UIScreen.main.bounds)
  window!.windowScene = windowScene
  window!.rootViewController = //your homeVC
  window!.makeKeyAndVisible()


推荐阅读