No puede tener compilaciones separadas con el mismo BundleID enviado a la AppStore. Si realmente desea tener "Algo especial" para dispositivos que son compatibles con ARKit: utilice algún tipo de comprobación durante el inicio de la aplicación. Aquí está la cita de Apple
Importante
Todas las configuraciones de ARKit requieren un dispositivo iOS con un procesador A9 o posterior. Si su aplicación es compatible con otros dispositivos y ofrece realidad aumentada como una función secundaria, use esta propiedad para determinar si ofrecer al usuario características basadas en AR.
Si su aplicación requiere ARKit para su funcionalidad principal, use la clave de arkit en la sección UIRequiredDeviceCapabilities de la aplicación Info.plist de su aplicación para hacer que su aplicación esté disponible solo en dispositivos compatibles con ARKit.
Por lo tanto, puede usar ARConfiguration.isSupported
para verificar las capacidades del dispositivo en el tiempo de ejecución. Si no es compatible con el respaldo a la implementación "antigua".
Para compilar el código para destinos < 11 puede marcar métodos o incluso clases con @available(iOS 11.0, *)
así:
@available(iOS 11.0, *)
func doSomeARStuff() {
if ARConfiguration.isSupported { print("Supported") }
}
Para llamar a esos métodos usando su código existente, hágalo como:
if #available(iOS 11.0, *) {
doSomeARStuff()
} else {
// Fallback on earlier versions
}