Найпростішим поясненням може бути одна з двох речей:
Прості обмежені ресурси - кінцевий час до QA і тесту. Це завжди щось для розгляду - для кожного пристрою, який запускає код, необхідно надати пристрої кодерам, тестувати під час розробки, тестувати під час QA, підтримувати протягом 2-3-річного періоду, що операційна система буде перебувати під основною підтримкою тощо. В основному, технічно здійсненні особливості постійно розкидані по підлозі ріжучого приміщення через те, що ресурси не є нескінченними, існують часові рамки і існують бюджети.
Мережа, яку Apple використовує для реалізації цього, просто не підтримує або не була написана для старого обладнання. Так - ви можете написати код у базовому 1 + 1 = 2 для будь-якого чіпсету або фреймворку. Моє освічене припущення - нічна зміна, написана металом або API нижчого рівня. Документація Apple пояснює апаратне забезпечення, необхідне для підтримки металу, і OpenGLES v 3.0:
Якщо подивитися на всі OpenGL2.0 і неметалеві пристрої, які тепер не підтримують нічна зміна це може бути переконливою технічною причиною, щоб не відправляти цю функцію без можливості мета / 3.0 графічного API та апаратної підтримки для резервного копіювання опису коду.
Моя думка твердо стоїть у таборі обмежень Hardware + API, але варто зазначити, що на кожному місці та кожному рішенні в екосистемі iOS є велика вартість, коли більшість з 1 мільярда активних користувачів продуктів Apple є користувачами iOS.