La explicación más simple podría ser una de dos cosas:
-
Recursos limitados simples: tiempo finito para el control de calidad y la prueba. Esto siempre es algo a tener en cuenta: para cada dispositivo que ejecuta código, debe proporcionar dispositivos a los programadores, realizar pruebas durante el desarrollo, pruebas durante el control de calidad, soporte durante el período de 2 a 3 años que el sistema operativo estará bajo el soporte general, etc. Básicamente, las características técnicamente factibles se encuentran dispersas en el piso de la sala de corte todo el tiempo debido al hecho de que los recursos no son infinitos, existen líneas de tiempo y existen presupuestos.
-
El marco que Apple utiliza para implementar esto simplemente no es compatible o no se ha escrito para el hardware anterior. Sí, puede escribir código en el 1 + 1 = 2 básico para casi cualquier conjunto de chips o marco. Mi conjetura es que el turno de noche está escrito en metal o en una API de nivel inferior. La documentación de Apple explica el hardware necesario para admitir metal y OpenGLES v 3.0:
Si observa todos los dispositivos OpenGL 2.0 y no metálicos que ahora no son compatibles con night-shift puede ser una razón técnica convincente para no enviar esa característica sin las capacidades metal / 3.0 de la API de gráficos y el soporte de hardware para respaldar lo que el código describe.
Mi corazonada está sólidamente en el campo de limitación de API de Hardware +, pero vale la pena afirmar que hay un gran costo para cada cambio y cada decisión en el ecosistema de iOS en este punto con la mayoría de los mil millones de usuarios activos de los productos de Apple que son iOS usuarios.