Xcode 10.1在编译时冻结

时间:2018-11-03 11:06:18

标签: xcode macos

我将Xcode更新到10.1版本,但是每次我运行或编译项目时,整个Mac都挂起并冻结,这使我关闭iMac或mac会自动注销!为什么会这样?我实际上无法工作或构建并运行任何东西!我更新了java,macOS,关闭了所有应用程序,但始终冻结。你有什么解决办法吗?

4 个答案:

答案 0 :(得分:8)

我遇到了确切的问题,因此我观看了我的构建任务。原来

  

编译情节提要文件...

我的主故事板文件的

步骤。 (我的情节提要板并不是很大。〜10个View Controller)

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

我不确定是不是由SceneKit引起的问题,但是某事导致我的Storyboard编译失败。值得一开始尝试:备份项目,删除情节提要中的所有内容,然后查看是否仍然崩溃。 (在10.0以下绝对不会发生这种情况)

答案 1 :(得分:1)

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

enter image description here

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

2。修复 除了编写代码,别无其他方法,只有在其他人需要以编程方式初始化SCNViews的帮助时,我才在其中包括代码(我很努力,首先尝试保留通用SCNViews。)因此,我将所有SCNViews一起删除了(确定,不是全部-它仍然可以使用StoryBoard中的两个SCNViews进行编译),并添加了一个UIView作为占位符,并具有与以前相同的约束。

SCNView子类

首先请确保已实现init(frame :)方法-如果init中发生了某些情况,请添加一个自定义init函数,以便从任一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()
}

ViewController

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保持清醒。在旋转设备时,需要添加一些新的附加约束以正确调整大小。但是最后,两个月后,我可以将新功能上传到App Store。 :)

答案 2 :(得分:1)

一个应用程序可以冻结整个Mac,甚至是来自Apple的应用程序,我都感到很惊讶。

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

  1. 构建应用程序,直到Mac冻结为止。
  2. 等待更长的时间(10-20秒)。
  3. 按住Mac的电源按钮直至其关闭。
  4. 打开Mac。
  5. 打开主故事板,然后稍微移动其中一个视图控制器。
  6. 保存情节提要并打开任何其他文件。
  7. 再次构建应用-这次Mac不冻结

只要未触及情节提要,任何重建对我来说都很好。

答案 3 :(得分:-1)

我删除了git repo,然后重新克隆了它,似乎可以解决问题

相关问题