Agregar compilaciones para diferentes objetivos

0

Ya tengo una versión publicada para dispositivos con iOS 9+. Ahora quiero lanzar una nueva versión solo para dispositivos ARKit que también requieren arm64. Pero mi compilación no pasa una verificación en XCode para el lanzamiento de itunesconnect. Muestra un error que indica que no puedo cambiar el rango de dispositivos de destino para un BundleID ya publicado. Pero si cambio el bundleID en XCode será otra aplicación. Quiero proporcionar una actualización solo para los habilitadores de ARKit, ¿cómo puedo hacerlo?

    
pregunta svnvav 12.03.2018 - 06:37

1 respuesta

0

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
}
    
respondido por el Mateusz Szlosek 13.03.2018 - 11:48

Lea otras preguntas en las etiquetas