ARSessionConfiguration unresolved in Xcode 9 GM

Viewed 4761

I have created an ARKit project using a beta version of Xcode 9, which I was able to run on my real device without issues.
Yesterday, I upgraded to Xcode 9 GM, and without touching anything, Xcode shows multiple errors, saying it does not know ARSessionConfiguration i.e.:

Use of undeclared type 'ARSessionConfiguration'

and:

Use of undeclared type 'ARWorldTrackingSessionConfiguration'

...for this code:

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

I have imported ARKit and am using the ARSCNViewDelegate in my ViewController.
When opening the project from the beta version of Xcode, it does not show the errors and I can again run the app on my phone.

Any idea how I can fix this?

2 Answers

ARWorldTrackingSessionConfiguration has been deprecated and renamed to ARWorldTrackingConfiguration: See here

Also, ARSessionConfiguration has been deprecated and renamed to ARConfiguration, which is now an abstract base class.

Use AROrientationTrackingConfiguration when you don't want world tracking, instead of using a generic ARConfiguration. Thus:

let configuration = AROrientationTrackingConfiguration()

You can also check if world tracking is supported on a device:

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