它可能是Xcode中的beta-prerelease-bug,但其他人是否经历过同样的事情?
我清理项目 - 运行它 - 一切都很好。
然后我停止了项目 - 再次运行 - 只是一个黑屏和这个日志:
2015-08-03 23:22:30.743 XXXXXXX[12221:2892479] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Could not find a storyboard named 'MainStoryboard' in bundle NSBundle </private/var/mobile/Containers/Bundle/Application/920917A0-44DF-4B5F-91A8-BB669DDF5F0D/XXXXXXXX.app> (loaded)'
*** First throw call stack:
(0x1822542d8 0x193f200e4 0x18728e810 0x186f59edc 0x186f59074 0x186f5770c 0x18aa893c8 0x18220c27c 0x18220b384 0x1822099a8 0x1821352d4 0x186d383d0 0x186d32f40 0x1001ac504 0x1945caa08)
libc++abi.dylib: terminating with uncaught exception of type NSException
然后我可以清理它并在全部做同样的事情......
是的,故事板已正确添加。它也在info.plist中正确添加,我也尝试删除它并再次添加它。结果相同。
更新我
同样的事情发生在最新的Xcode Beta 5中。
更新II
这是我第二次在模拟器中运行时的日志。
2015-08-10 12:09:19.552 XXXXX[32346:418981] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Could not find a storyboard named 'MainStoryboard' in bundle NSBundle </Users/johndoe/Library/Developer/CoreSimulator/Devices/9685DA45-378D-48AC-BF8C-0DD2EF24C9B3/data/Containers/Bundle/Application/17882AD9-E024-41A1-9E9B-9DC2C2845EA5/XXXXX.app> (loaded)'
*** First throw call stack:
(
0 CoreFoundation 0x00000001116e69b5 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x0000000112927deb objc_exception_throw + 48
2 UIKit 0x000000010f4564f7 -[UIStoryboard name] + 0
3 UIKit 0x000000010ed9b310 -[UIApplication _loadMainStoryboardFileNamed:bundle:] + 58
4 UIKit 0x000000010ed9b664 -[UIApplication _loadMainInterfaceFile] + 260
5 UIKit 0x000000010ed99fc9 -[UIApplication _runWithMainScene:transitionContext:completion:] + 1383
6 UIKit 0x000000010ed97390 -[UIApplication workspaceDidEndTransaction:] + 188
7 FrontBoardServices 0x000000011347b7ac -[FBSSerialQueue _performNext] + 192
8 FrontBoardServices 0x000000011347bb1a -[FBSSerialQueue _performNextFromRunLoopSource] + 45
9 CoreFoundation 0x0000000111612b21 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
10 CoreFoundation 0x0000000111608a4c __CFRunLoopDoSources0 + 556
11 CoreFoundation 0x0000000111607f03 __CFRunLoopRun + 867
12 CoreFoundation 0x0000000111607918 CFRunLoopRunSpecific + 488
13 UIKit 0x000000010ed96d2d -[UIApplication _run] + 402
14 UIKit 0x000000010ed9b99e UIApplicationMain + 171
15 Teazr 0x000000010e78912f main + 111
16 libdyld.dylib 0x0000000112ecc92d start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
这可能是新SDK中的某种Facebook错误吗?
答案 0 :(得分:1)
将Xcode更新为稳定版本。
答案 1 :(得分:0)
从崩溃日志来看,很明显Xcode在App的Bundle中找不到MainStoryboard.storyboard
。以下是我建议您采取的步骤,以便解决问题。
这涉及打开Finder,转到项目目录,并确认MainStoryboard.storyboard
实际上是在项目的文件夹中,它存在,并且它是可读/可写的。
如果故事板不存在,请跳至步骤3.否则......
MainStoryboard.storyboard
的引用。在左侧的文件列表中,点击MainStoryboard.storyboard
进行选择。然后,点击[Command] + [Delete]。
在警告框中询问您是要将文件移至“废纸篓”还是仅删除参考,请点击删除参考。
打开对话框,将故事板添加回项目,如下所示:
File
- &gt; Add Files to Project...
导航到项目的文件夹并重新添加MainStoryboard.storyboard
。
只需清理项目,构建项目,然后再次尝试运行它。的两次。强>
你说得对。从Mac上删除Xcode,及其在库中的所有文件,然后重新安装。此问题可能是由于安装错误导致的,因此您可能需要将其卸载并重新安装。
代码无法找到MainStoryboard.storyboard
,因为它似乎不存在于App的Bundle中。对于那些没有受过教育的人来说,它也被称为“二元”。 Bundle是开发人员放置应用程序需要在本地访问的资源的地方。在构建时,Xcode(应该)放入Bundle中的所有文件并使其成为Bundle。
删除引用并重新添加它应该让它始终将它添加到包中,而不仅仅是每次运行。
如果MainStoryboard.storyboard
无法读取,或者它不可写,则Xcode不会将其包含在Bundle中。
为什么它只能在50%的时间内工作对我来说很奇怪,因为每次都会运行Xcode 6。制作一个全新的项目并运行它不应该导致编译器出错,因为每个新项目都是从模板创建的。
如果Xcode没有执行Apple开发人员放入模板的代码(例如SpriteKit的默认“Hello world!”消息),那么Xcode就有问题了。卸载并重新安装。
要弄清楚出现此问题的原因,需要更多信息。也许我们可以向Apple展示这一点,他们也许能够通过Xcode 7 GM解决这些信息!