0

ARKit 3.5 apparently only works in Xcode 11.4, which received the updated SDK. I only have 11.3 on Mojave, and Mojave does not support 11.4. I would rather not update to Catalina yet. If I want to use the new iPad Pro with LIDAR, what happens if I build to it with the older Xcode? I understand that I probably can't use the updated API function calls, but does an app built with the older Xcode use the better tracking and LIDAR features implicitly? -- or is it that the older SDK doesn't know how to interface with the new LIDAR hardware, and I'll get poor results or suboptimal results closer to what the previous generation would get? I can't test this myself of course. May I have clarification?

An implicit question would be -- is there actually a way to get the new SDK working in the older Xcode, or is the newer SDK built only for Catalina or later?

Andy Jazz
  • 49,178
  • 17
  • 136
  • 220
synchronizer
  • 1,955
  • 1
  • 14
  • 37

1 Answers1

2

ARKit 3.5 has got new classes, structures and enumerations available only for devices with installed iOS/iPadOS 13.4 and higher and with LiDAR scanner.

Here are these classes, structs and enums:


But also you need Xcode 11.4 installed on a Mac running macOS Catalina 10.15.2 or later.

Let's see what Apple documentation says about older version Xcode 11.3 in Release Notes:

Xcode 11.3 supports developing apps for iOS 13.3, iPadOS 13.3, tvOS 13.3, watchOS 6.1, and macOS Catalina 10.15.2. Xcode 11.3 supports on-device debugging for iOS 8 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 11.3 requires a Mac running macOS Mojave 10.14.4 or later.


If you're developing with Xcode version lower than 11.4 you can't officially use ARKit 3.5's new features because there's no iOS 13.4 target in Xcode IDE 11.3 and there's no ARKit 3.5 library's update.

If you want to implement new ARKit 3.5 functionality in ARKit 3.0 app, there's always a checking methodology allowing you turn on/off aforementioned ARKit 3.5 SceneReconstruction tools:

import ARKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(_ application: UIApplication, 
                       didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

        guard ARWorldTrackingConfiguration.supportsSceneReconstruction(.meshWithClassification) 
        else {
            fatalError("Scene reconstruction requires a device with a LiDAR Scanner.")
        }            
        return true
    }
}

Answer:

Officially you have no ability to use ARKit 3.5 on older versions of Xcode (only Xcode 11.4 and higher supports it).

But!

You can install Xcode 11.4 on macOS Mojave to get a target 13.4 support.

Here's a SO post on that topic – How to run Xcode 11.4 on macOS Mojave 10.14.6

And after that you may theoretically! try to add ARKit's 3.5 library's update. But I have no links on this subject.

Andy Jazz
  • 49,178
  • 17
  • 136
  • 220
  • Right, I already added 13.4 device support. I am not really interested in the scene construction tools though. I just want to know if the new iPad will be able to use the better tracking that its own camera hardware provides, or if better tracking is only available via some arkit 3.5 internals. Basically, is ARKit 3.5 needed for the better tracking at all, forget a bout the API? – synchronizer Apr 23 '20 at 15:13
  • 1
    Yes, ARKit 3.5 is needed for creating AR apps with better tracking, 'cause ARKit 3.5's engine drives LiDAR hardware. In other words – all the properties needed for iPad with LiDAR are inside ARKit 3.5. – Andy Jazz Apr 23 '20 at 15:22
  • 1
    Got it. Well I guess I have no choice but to upgrade or boot from an external drive. I’ve heard all sorts of terrible thinhs about catalina and I’m concerned what it’ll do for my older 2018 macbook pro. – synchronizer Apr 23 '20 at 17:00