Xcode 10.1在编译时冻结

Xcode 10.1在编译时冻结,xcode,macos,Xcode,Macos,我将Xcode更新为10.1版本,但每次我运行或编译我的项目时,整个mac都会挂起并冻结,这使我关闭iMac或mac自动注销!为什么会发生这种情况?我简直不能工作,也不能建造和运行任何东西!我更新了java、macOS,关闭了所有应用程序,但仍然一直处于冻结状态。你有什么解决办法吗 我遇到了确切的问题,所以我看着我的构建任务点击。结果是我在手术期间遭遇了完全的系统冻结 编译脚本文件 我的主故事板文件的步骤。(我的故事板不是很大。~10个视图控制器) 我重新创建了我的项目,对我来说,当我开始添加几

我将Xcode更新为10.1版本,但每次我运行或编译我的项目时,整个mac都会挂起并冻结,这使我关闭iMac或mac自动注销!为什么会发生这种情况?我简直不能工作,也不能建造和运行任何东西!我更新了java、macOS,关闭了所有应用程序,但仍然一直处于冻结状态。你有什么解决办法吗

我遇到了确切的问题,所以我看着我的构建任务点击。结果是我在手术期间遭遇了完全的系统冻结

编译脚本文件

我的主故事板文件的步骤。(我的故事板不是很大。~10个视图控制器)

我重新创建了我的项目,对我来说,当我开始添加几个SCNViews时,不稳定性就出现了。当我将它们全部删除并以编程方式创建这些视图时,我的故事板编译步骤通过,我的应用程序启动


我不确定这是否是SceneKit造成的问题,但某种原因导致了我的故事板编译失败。值得一试:备份项目,删除情节提要中的所有内容,看看你是否还在崩溃。(这在10.0下绝对不会发生)

1。分析 根据G Purcell的回答,我将注意力集中在我的SCNViews上。这使它停止崩溃(删除所有SCNViews的子类型名称):

但我无法使自定义类正确初始化。我不会在运行时将它们转换为它们的子类型,有时候XCode仍然会崩溃

2。修复方法 除了编写代码之外没有其他方法,我在这里包括它,只有当其他人需要一些帮助以编程方式初始化SCNViews时(我努力了,首先尝试保留通用SCNViews。)所以我一起删除了所有SCNViews(好的,不是全部-它仍然使用故事板中的两个三个SCNViews进行编译,)并添加了一个UIView作为占位符,其约束与前面相同

SCNView子类

override func viewDidLoad() {
    super.viewDidLoad()
    self.customSceneView = CustomSceneView(frame: customSceneContainer.bounds)
    self.customSceneContainer.addSubview(self.customSceneView)
    self.customSceneView.widthAnchor.constraint(equalTo: customSceneContainer.widthAnchor, multiplier: 1).isActive = true
    self.customSceneView.heightAnchor.constraint(equalTo: customSceneContainer.heightAnchor, multiplier: 1).isActive = true
}
首先确保实现了init(frame:)方法——如果init中发生了一些事情,请添加一个自定义init func,以便从以下任一init调用它:

override init(frame: CGRect) {
    super.init(frame: frame, options: nil)
    self.layoutIfNeeded()
    self.customInit()
}
required init(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)!
    customInit()
}
func customInit(){
    self.sceneSetup()
    self.intro()
    self.layoutIfNeeded()
}
视图控制器

override func viewDidLoad() {
    super.viewDidLoad()
    self.customSceneView = CustomSceneView(frame: customSceneContainer.bounds)
    self.customSceneContainer.addSubview(self.customSceneView)
    self.customSceneView.widthAnchor.constraint(equalTo: customSceneContainer.widthAnchor, multiplier: 1).isActive = true
    self.customSceneView.heightAnchor.constraint(equalTo: customSceneContainer.heightAnchor, multiplier: 1).isActive = true
}
结果
最后一切都准备好了,我的Mac电脑保持清醒。旋转设备时,需要添加一些新的附加约束以正确调整大小。但两个月后,我终于可以将新功能上传到应用商店了

我很惊讶一个应用程序可以冻结整个Mac,甚至是来自苹果的应用程序

在对这个问题感到非常沮丧之后,我发现以下解决方法对我很有效:

  • 构建应用程序,直到Mac冻结
  • 再等一会儿(10-20秒)
  • 按住Mac的电源按钮,直到关机
  • 打开你的Mac电脑
  • 打开主情节提要并稍微移动其中一个视图控制器
  • 保存情节提要并打开任何其他文件
  • 再次构建应用程序-这一次Mac不会冻结

  • 只要情节提要未被触动,任何重建都可以正常工作。

    通过从情节提要中删除SCNView和ARSCNview,可以解决上述问题。必须以编程方式创建ARSCNView和SCNView。该应用程序共有20个ViewController,其中5个包含ARSCNView和1个SCNView。在那之后,我成功地编译了Xcode 10.1、Xcode 10.2 beta 4中的构建。

    我删除了git repo,然后将其重新锁定,似乎解决了这个问题

    我也有这个问题。它是在将Xcode更新到10.1之后启动的,在编译过程中,计算机会冻结,唯一有效的方法是重新启动计算机。不,CMD+CTRL+ESC不会弹出强制退出对话框,而且不,我认为这不是RAM/磁盘空间,因为它是在更新后开始出现的,但不是所有项目都会出现。有些项目编译得很好。昨天,我再次尝试下载Xcode 10.0,删除了派生数据,进行了清理,然后就可以正常编译了。但它不会将应用推送到我的手机上,因为Xcode 10.0不适用于iOS 12.1。怎么办?是的,这正是我的问题!我降级了Xcode,如果你想在你的设备上运行,下载这个磁盘映像:java将完全不相关,因为Xcode不构建或使用java。Xcode 10.2测试版已经发布。我修复了我的问题,将我所有的SCNView全部删除,添加到代码中,正如我在下面的回答中所描述的,这使它起了作用,所以我无法判断10.2测试版是否解决了问题。只是补充一下,这在10.1更新后一直发生在我身上,现在仍然发生在有5个SCNView的大项目上。一个奇怪的注意事项是,当我让iMac整夜处于冻结状态时,我早上醒来发现它已经完成编译,并且它不会再次崩溃,除非在任何情节提要中添加更多视图。这是一个奇怪的现象,但在我的情况下每次都会发生-它最终在3-4-5-6小时后“解冻”是的-绝对不是意味着重新开始是最好的选择!只是好奇:你知道你在做什么构建任务吗?(这也是故事板编译任务吗?)您是在使用SceneKit还是SpriteKit?还是仅仅使用标准的UIKit视图?是的,我在使用SceneKit,ARKit还在等待 修复此问题以了解您的问题也可能与SceneKit相关。我正在尝试建立一个测试用例,证明失败,然后将向苹果提交一份bug报告。后续问题:您使用的是什么硬件?(我的崩溃日志还显示了一个与金属有关的崩溃,所以我想知道它是否与图形卡驱动程序和SceneKit有关)我使用的是2017年的13英寸MacBook Pro(GPU:Intel Iris Plus 640)太棒了!我自己在故事板中有几个SceneKit视图,我没有怀疑它与SCNView和故事板有关。我确实复制了项目,使用了较旧的git版本,然后一个接一个地添加了新的方法和故事板项,然后问题逐渐出现。因此,如果很快没有新的Xcode出现,我应该设法解决问题公元