我将Xcode更新到10.1版本,但是每次我运行或编译项目时,整个Mac都挂起并冻结,这使我关闭iMac或mac会自动注销!为什么会这样?我实际上无法工作或构建并运行任何东西!我更新了java,macOS,关闭了所有应用程序,但始终冻结。你有什么解决办法吗?
答案 0 :(得分:8)
我遇到了确切的问题,因此我观看了我的构建任务。原来
我的主故事板文件的编译情节提要文件...
步骤。 (我的情节提要板并不是很大。〜10个View Controller)
我重新创建了项目,对我来说,当我开始添加几个SCNViews时,就出现了不稳定。当我全部删除它们并以编程方式创建这些视图时,Storyboard的编译步骤通过了,应用程序启动了。
我不确定是不是由SceneKit引起的问题,但是某事导致我的Storyboard编译失败。值得一开始尝试:备份项目,删除情节提要中的所有内容,然后查看是否仍然崩溃。 (在10.0以下绝对不会发生这种情况)
答案 1 :(得分:1)
1。分析 基于G Purcell的回答,我将精力集中在SCNViews上。这使它停止崩溃(删除所有SCNView的子类型名称):
但是我无法使自定义类正确初始化。我无法在运行时将它们强制转换为它们的子类型,并且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的应用程序,我都感到很惊讶。
在对这个问题感到沮丧之后,我发现以下对我有效的解决方法:
只要未触及情节提要,任何重建对我来说都很好。
答案 3 :(得分:-1)
我删除了git repo,然后重新克隆了它,似乎可以解决问题