Unity sucks, but:
> "That literally happened to us. Boss wants to change our iOS game icon. Changing icon requires a new build. A new build requires iPhone X support. iPhone X build target requires Xcode 9. Xcode 9 requires macOS 10.12. OS update breaks old Unity3D. Upgrading Unity breaks build."
* Apple requires you add support to new devices to push a new build. (this is the principal policy decision).
* This new support requires you build with new tools (Xcode 9)
* New tools require newer MacOS.
* Newer MacOS doesn't compile old Unity3D code.
* New Unity doesn't work with their codebase.
#1 is a policy decision, and solely Apple's choice. #2, #3 are (reasonable) technical pain owned by Apple's ecosystem. #4 is an annoyance that's mostly Apple's fault but is shared somewhat by Unity. #5 is "Unity's fault" for imperfect backward compatibility.