it-swarm.com.de

Xcode 10.1 friert beim Kompilieren ein

Ich habe Xcode auf die Version 10.1 aktualisiert, aber jedes Mal, wenn ich mein Projekt laufe oder kompiliere, bleibt der gesamte Mac hängen und friert ein, was dazu führt, dass sich der iMac oder Mac automatisch abmeldet! Warum passiert das? Ich kann nicht buchstäblich arbeiten oder etwas bauen und ausführen! Ich habe Java, macOS aktualisiert und alle Apps geschlossen, friert aber immer noch ein. Hast du eine Lösung? 

9
Mc.Lover

Ich hatte genau das Problem, also schaute ich meine Build-Aufgaben vorbei. Es stellte sich heraus, dass ich während des 

Storyboard-Datei kompilieren ...

schritt meiner Main Storyboard-Datei. (Mein Storyboard war nicht sonderlich groß. ~ 10 Controller anzeigen)

Ich habe mein Projekt neu erstellt und für mich kam die Instabilität zustande, als ich anfing, ein paar SCNViews hinzuzufügen. Wenn ich sie alle entfernte und diese Ansichten programmgesteuert erstellte, bestand mein Storyboard-Kompilierungsschritt und meine App wurde gestartet.

Ich bin nicht sicher, ob SceneKit Probleme verursacht, aber etwas führte dazu, dass mein Storyboard nicht kompiliert wurde. Es lohnt sich, es zu versuchen: Sichern Sie das Projekt, löschen Sie alles im Storyboard und sehen Sie, ob Sie immer noch abstürzen. (Dies ist definitiv nicht unter 10.0 passiert)

7
G Purcell

1. Analyse Basierend auf G Purcells Antwort konzentrierte ich mich auf meine SCNViews. Dies hat dazu geführt, dass der Absturz aufhört (das Entfernen der Subtypnamen für alle SCNViews):

 enter image description here

Ich konnte die benutzerdefinierten Klassen jedoch nicht richtig initialisieren. Ich würde nicht für mich arbeiten, wenn ich sie zur Laufzeit in ihre Untertypen umwandeln würde, und XCode stürzte manchmal noch ab.

2. Der Fix Es gab keine andere Möglichkeit, als Code zu schreiben, und ich füge ihn hier ein, nur wenn jemand anderes Hilfe brauchte, um die SCNViews programmatisch zu initialisieren (ich bemühte mich, zuerst die generischen SCNViews beizubehalten). Also entfernte ich alle SCNViews zusammen (OK, nicht alle - es wird immer noch mit den zwei bis drei SCNViews in StoryBoard kompiliert) und fügte eine UIView als Platzhalter mit den gleichen Einschränkungen wie zuvor hinzu.

SCNView-Unterklasse:

Stellen Sie zunächst sicher, dass die init (frame :) -Methode implementiert ist. Falls in der init etwas passiert, fügen Sie eine benutzerdefinierte init func hinzu, sodass sie von einer der beiden init aufgerufen wird:

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
}

Ergebnis: Zum Schluss alles zusammengestellt, mein Mac blieb wach. Für die korrekte Größenänderung beim Drehen des Geräts mussten einige neue zusätzliche Einschränkungen hinzugefügt werden. Endlich und nach zwei Monaten konnte ich neue Funktionen in den App Store hochladen. :)

1
Henning

Ich bin ziemlich überrascht, dass eine App den gesamten Mac einfrieren kann, sogar eine App, die von Apple stammt.

Nach viel Frustration bei diesem Problem fand ich die folgende Problemumgehung, die für mich funktioniert:

  1. Erstellen Sie die App, bis der Mac einfriert.
  2. Warten Sie etwas länger (10-20 Sekunden).
  3. Halten Sie den Netzschalter des Mac gedrückt, bis er sich ausschaltet.
  4. Schalten Sie Ihren Mac ein.
  5. Öffnen Sie das Haupt-Storyboard und verschieben Sie einen der View-Controller leicht.
  6. Speichern Sie das Storyboard und öffnen Sie eine andere Datei.
  7. Erstellen Sie die App erneut - Diesmal friert der Mac nicht ein

Jeder Umbau funktioniert gut für mich, solange das Storyboard nicht berührt wurde.

0
David

Konnte das oben genannte Problem beheben, indem SCNView und ARSCNview aus dem Storyboard entfernt wurden. Musste ARSCNView und SCNView programmatisch erstellen. Die App hatte insgesamt 20 ViewController, von denen 5 ARSCNView und 1 SCNView enthielten. Danach wurde der Build in Xcode 10.1, Xcode 10.2 Beta 4 erfolgreich kompiliert.

0
Kedar Nagekar