Xcode打开Storyboard时崩溃

3
为了支持iOS 7到iOS 9,我安装了Xcode 6和7两个版本。 然后我在Xcode 7上创建了一个iPhone项目。 并在Xcode 6上打开以在iPhone模拟器7上测试。
但是当我点击Storyboard文件时,Xcode 6崩溃了。
如何解决呢? 还有其他支持这些iOS版本的方法吗?
错误信息:
进程: Xcode [9928] 路径: /Applications/Xcode 6.app/Contents/MacOS/Xcode 标识符: com.apple.dt.Xcode 版本: 6.4 (7720) 构建信息: IDEFrameworks-7720000000000000~8 代码类型: X86-64 (原生) 父进程: ??? [1] 负责人: Xcode [9928] 用户ID: 501
日期/时间: 2016-01-04 01:15:21.068 +0900 操作系统版本: Mac OS X 10.10.5 (14F1509) 报告版本: 11 匿名UUID: F02C76F0-B69A-FE68-DD89-9946A7C82C03
睡眠/唤醒UUID: 2BF55735-0241-43B3-A731-49B6D645DC4F
自启动后的持续唤醒时间: 53000 秒 自上次唤醒以来的时间: 550 秒
崩溃线程: 0分派队列: com.apple.main-thread
异常类型: EXC_CRASH (SIGABRT) 异常代码: 0x0000000000000000, 0x0000000000000000
应用程序特定的信息: ProductBuildVersion: 6E35b 在/SourceCache/IDEInterfaceBuilderCocoaTouch/IDEInterfaceBuilderCocoaTouch-7703/InterfaceBuilder/Utilities/IBObjectMarshalling.m中断言失败:45 详情:无法启动接口生成器Cocoa Touch工具: 错误域=com.apple.InterfaceBuilder代码=-1 "遇到与接口生成器WatchKit工具通信的错误。"UserInfo=0x7fb9b3128d40 {NSUnderlyingError=0x7fb9ac00c620 "与接口生成器通信失败", NSLocalizedDescription=遇到与接口生成器WatchKit工具通信的错误。, NSLocalizedRecoverySuggestion=请检查Console.app获取有关"Interface Builder WatchKit Tool"的崩溃报告的更多信息., NSLocalizedFailureReason=接口构建器WatchKit工具(10069)启动失败并退出状态(null),信号5。
Dyld错误消息: 未加载库:/System/Library/PrivateFrameworks/PepperUICore.framework/PepperUICore 引用自:/Applications/Xcode 6.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Xcode/Overlays/Interface Builder WatchKit Tool 原因:找不到图像
应用程序特定的信息: dyld: launch, loading dependent libraries DYLD_FRAMEWORK_PATH=/Applications/Xcode 6.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Xcode/Overlays DYLD_LIBRARY_PATH= DYLD_FALLBACK_LIBRARY_PATH= DYLD_ROOT_PATH=/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 9.0.simruntime/Contents/Resources/RuntimeRoot

我对使用XC 7制作的项目能否在XC 6中运行表示怀疑。 - votelessbubble
1
你知道吗,只需使用Xcode 7就可以支持iOS 7及更高版本的应用程序。 - rmaddy
@rmaddy 我知道这个。但是在Xcode 7中,我无法在iOS 7的iPhone模拟器上测试我的应用程序。你如何在Xcode 7上测试你的iOS 7应用程序? - Daeyeon Joo
使用运行iOS 7的真实设备进行测试。如果无法进行测试,请放弃对iOS 7的支持。 - rmaddy
顺便提一下,使用 Xcode 6 在 iOS 7 下测试您的应用程序不是有效的测试。您要测试的应用程序与您提交到商店的应用程序不同。当使用 Xcode 6 在 iOS 7 上进行测试时,它可能可以完美运行,但在使用 Xcode 7 构建时可能会出现失败和崩溃。 - rmaddy
@rmaddy 你说得对。任何应用都应该通过Xcode 7提交。谢谢 :) - Daeyeon Joo
3个回答

6
原因是Xcode 6和7之间存在冲突,这在苹果的Xcode 7版本发布说明中有所提及。
我按照步骤操作后,错误得到了解决。
“从Xcode的下载偏好设置中安装iOS 9.0模拟器会导致在同一台机器上安装Xcode 6的Interface Builder无法正常工作。 要么避免安装iOS 9.0模拟器,要么将/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS\ 9.0.simruntime移动到备份位置以便切换到Xcode 6,并在使用Xcode 7时将其移回。(23230951)” https://developer.apple.com/library/watchos/releasenotes/DeveloperTools/RN-Xcode/Chapters/xc7_release_notes.html

是的。对我来说,删除iOS 9模拟器解决了这个问题。有一个有趣的观察结果是,我的错误信息不同,XCode 6正在寻找watch kit,但找不到它。 - SilentNot
@SilentNot 我也遇到了你在watch kit中的错误消息,但是问题已经解决了。可能是因为Xcode试图加载项目文件中的框架列表,但是列表依赖于Xcode的版本。 - Daeyeon Joo

1

我遇到了同样的问题,经过一番调查后发现,在更新Xcode或Mac OS之后,系统库中会删除2个私有框架PepperUICore.framework和SockPuppetGizmo.framework。但你仍然可以在Xcode 6模拟器SDK中找到它们。

请确保在/System/Library/PrivateFramework/中找不到这两个框架。然后使用以下命令行(用你自己的Xcode 6应用程序路径替换)从Xcode 6模拟器SDK复制私有框架到/System/Library/PrivateFramework/中。

sudo cp -r /Applications/Xcode6.4.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/PepperUICore.framework /System/Library/PrivateFrameworks/

sudo cp -r /Applications/Xcode6.4.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/SockPuppetGizmo.framework /System/Library/PrivateFrameworks/

现在使用Xcode 6打开你的.xib或.storyboard文件,应该没问题。


我从https://developer.apple.com/library/watchos/releasenotes/DeveloperTools/RN-Xcode/Chapters/xc7_release_notes.html找到了解决办法。我认为你的经验遇到了不同的问题 :) - Daeyeon Joo

0

尝试更改故事板检查器中的“打开方式”属性,使其与Xcode 6或6.3兼容。

具体来说,是这个下拉/弹出菜单项:

enter image description here

但就像Kaizoku的评论一样,如果您的应用程序期望仅存在于iOS 9中的符号或功能,则不要感到惊讶,其他东西可能会出现问题。

更好的方法可能是设置您的应用程序的最低部署版本(例如iOS 7),并在您可以使用Xcode 7下载的iOS 7或iOS 8模拟器中尝试它


如果Interface Builder文件部分未显示,应如何更改? - kemdo

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