2017-09-20 6 views
4

Ich habe ein ARKit Projekt mit einer Beta-Version von Xcode 9 erstellt, die ich in der Lage war auf dem realen Gerät ohne Probleme laufen.
Gestern habe ich auf Xcode 9 GM aufgerüstet, und ohne etwas zu berühren, Xcode mehrere Fehler zeigt, sagen, es nicht weiß ARSessionConfiguration dh:ARSessionConfiguration ungelöst in Xcode 9 GM

Verwendung von nicht deklarierten Typ 'ARSessionConfiguration'

und:

Verwendung von Schwarz type 'ARWorldTrackingSessionConfiguration'

... für diesen Code:

let session = ARSession() 
var sessionConfig: ARSessionConfiguration = ARWorldTrackingSessionConfiguration() 

I ARKit und bin mit dem ARSCNViewDelegate in meinem Viewcontroller importiert haben.
Wenn das Projekt von der Beta-Version von Xcode öffnen, es zeigt nicht die Fehler und ich kann wieder die App auf meinem Handy laufen.

Irgendeine Idee, wie ich das beheben kann?

Antwort

12

ARWorldTrackingSessionConfiguration ist veraltet und umbenannt ARWorldTrackingConfiguration: See here

Auch hat ARSessionConfiguration worden ARConfiguration veraltet und umbenannt, die jetzt eine abstrakte Basisklasse ist.

Verwenden AROrientationTrackingConfiguration, wenn Sie nicht wollen, Welt-Tracking, sondern eine allgemeine ARConfiguration zu verwenden. Also:

let configuration = AROrientationTrackingConfiguration() 

Sie können auch überprüfen, ob Welt Tracking auf einem Gerät unterstützt wird:

if ARWorldTrackingConfiguration.isSupported { 
    configuration = ARWorldTrackingConfiguration() 
} 
else { 
    configuration = AROrientationTrackingConfiguration() 
} 
6

In Xcode 9 GM, sieht aus wie ARWorldTrackingSessionConfiguration zu ARWorldTrackingConfiguration umbenannt wurde:

https://developer.apple.com/documentation/arkit/arworldtrackingconfiguration

Verweis auf diese Änderung:

https://github.com/markdaws/arkit-by-example/issues/7

ARSessionConfiguration zu ARConfiguration umbenannt wurde:

+1

schließen, aber nicht ganz - 'ARConfiguration' ist jetzt eine abstrakte Basisklasse. Wenn Sie sind mit 'ARSessionConfiguration' direkt (für 3DOF-only-Tracking) in Betas, [' AROrientationTrackingConfiguration'] (https://developer.apple.com/documentation/arkit/arorientationtrackingconfiguration) ist das, was Sie jetzt brauchen. – rickster

+0

@rickster, danke für die Klarstellung – atomarch