Xcode 7无法找到名为的故事板。

9

在更新了Xcode到7版本之后,我不能构建我的应用程序。每次在模拟器的其他版本和设备上构建时都会出现这个错误。在清理项目后,我可以在设备上运行,但如果我想再次运行,错误就会出现。

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Could not find a storyboard named 'Main' in bundle NSBundle </private/var/mobile/Containers/Bundle/Application/43A262C3-81D4-4CF3-B727-AE670906234E/someexample.app> (loaded)'
    *** First throw call stack:
    (0x1852b422c 0x196f280e4 0x18a2f26b0 0x189fbdd48 0x189fbcee0 0x189fbb578 0x18daf53c8 0x18526bfc8 0x18526b0d0 0x1852696f4 0x185194f74 0x189d9c224 0x189d96d94 0x10016854c 0x1975d2a08)
    libc++abi.dylib: terminating with uncaught exception of type NSException

我尝试从目标中删除“Main Interface”并在AppDelegate中进行硬编码,如下所示:
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle: nil];
ViewController *yourController = (ViewController *)[mainStoryboard instantiateViewControllerWithIdentifier:@"StartVC"];
self.window.rootViewController = yourController;

我有另一个错误,就是找不到故事板ID“StartVC”。

你也遇到这个问题了吗?

更新:

尝试创建新的故事板并将其放入主界面中,结果得到相同的错误。

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

UPD 2

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </Users/devBot/Library/Developer/CoreSimulator/Devices/5018D9C0-9609-4368-A72C-488C67EBEFB5/data/Containers/Bundle/Application/9E485D40-7ED4-4996-942B-81A7C9E4DCA9/someapp.app> (loaded)' with name 'StartVC' and directory 'Main.storyboardc''

更新3

在Xcode 6.4中一切正常!我认为这是Xcode 7的一个bug。


你有一个名为“Main.storyboard”或“Storyboard.storyboard”的故事板文件吗?如果没有,那么故事板文件叫什么?你能展示一下项目设置屏幕的截图吗?此外,“application didFinishLaunching…”方法中的代码是什么? - Fogmeister
Fogmeister,Main.Storyboard。例如,我创建了“Storyboard.storyboard”。在didFinishLaunching中,我没有任何关于storyboard的内容,并且我没有将任何视图控制器分配给rootviewcontroller。 - dev.nikolaz
5个回答

11

在使用故事板引用时,我遇到了Xcode 7的问题。

  • 解决方法:
  • 在文件检查器中将本地化设置为每个故事板相同(基础、英语等)。这可能是捆绑包的问题。

我现在无法检查,因为我创建了一个新项目并将所有文件从旧项目移动到新项目,而且一切正常。我认为问题在于.xcodeproj文件。 - dev.nikolaz
它对我有效。非常感谢。这种错误有点有趣。嘿嘿。 - BlaShadow

10
有时候这种情况是因为在Storyboard的文件检查器中目标成员未被选中。确保已经选中了该值。

1
当你使用版本控制并且经常清理项目时,这种情况经常发生。 - Teja Nandamuri
不,目标成员故事板已经被选中。 - dev.nikolaz

2
这突然发生在我身上,看起来是Xcode 7的一个bug。我通过编译到iPhone 6模拟器而不是6s来解决了这个问题(可能只是暂时的)。我们会看看这是否是一个永久性的解决方案。
为了恢复,我必须清理构建文件夹并重新启动(退出)Xcode。这解决了6s的问题,在几次编译中有效。

是的,我可以在5s 8.4和5s 9.0中编译项目,如果我想编译到设备上,我需要清除项目。而且我只能运行一次!然后我需要重复我的操作! - dev.nikolaz
如果您想更改Storyboard中的内容,您也应该清理项目...这是必须的。 - dev.nikolaz
感谢您为我解决了这个崩溃问题。我使用了重构到故事板功能。 - malhal

0
作为一个额外的潜在答案,我的问题是应用程序中“base.lproj”文件夹名称的第一个字母是小写的,但是Xcode期望第一个字母是大写的“Base.lproj”。
显然,在某个时候发生了更改(我可以在我的git更改中看到大小写的变化)。
我不得不编辑project.pbxproj文件,将每个出现的“base”替换为“Base”。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接