Ya tengo una compilación publicada por iOS 9+ dispositivos. Ahora quiero liberar una nueva versión de sólo ARKit dispositivos que requiere arm64. Pero mi build no pasar una verificación en XCode para itunesconnect liberación. Se muestra un error de que no puedo cambiar de destino gama de dispositivos para la que ya se ha estrenado bundleID. Pero si puedo cambiar bundleID en XCode será otra aplicación. Yo quiero darle una actualización solo para ARKit facilitadores, ¿cómo puedo hacerlo?
Respuesta
¿Demasiados anuncios?Usted no puede tener por separado construye con el mismo BundleID enviado a la AppStore. Si usted realmente desea tener "Algo especial" para los dispositivos que son ARKit capaz de Usar algún tipo de control durante el inicio de la aplicación. He aquí la cita de Apple
Importante Todos ARKit configuraciones requieren un dispositivo iOS con un A9 o posterior procesador. Si la aplicación de otro modo compatible con otros dispositivos y ofrece la realidad aumentada como una característica secundaria, el uso de esta propiedad para determinar si ofrecen AR basado en características para el usuario. Si su aplicación requiere ARKit para su funcionalidad, el uso de la arkit clave en la UIRequiredDeviceCapabilities sección de la aplicación Info.plist para hacer que tu aplicación sólo disponible en dispositivos que admiten ARKit.
Así que usted puede utilizar ARConfiguration.isSupported
a comprobar las capacidades del dispositivo en tiempo de ejecución. Si no se admite la reserva de la "Vieja" implementación.
Con el fin de compilar el código para los objetivos de < 11 puede marcar métodos o incluso clases con @available(iOS 11.0, *)
como así:
@available(iOS 11.0, *)
func doSomeARStuff() {
if ARConfiguration.isSupported { print("Supported") }
}
Con el fin de llamar a los métodos que utilizan su código existente hacerlo como:
if #available(iOS 11.0, *) {
doSomeARStuff()
} else {
// Fallback on earlier versions
}