In the 2017 docs it still says: "Starting from Unity 5.3.4, you can compile code selectively based on the earliest version of Unity required to compile or execute a given portion of code. Given the same version format as above (X.Y.Z), Unity exposes one global #define in the format UNITY_X_Y_OR_NEWER, that can be used for this purpose." However scripts that use the definition "#if UNITY_5_3_4_OR_NEWER" don't work in Unity 2017- Unity2017 is obviously not considered 'newer'. Instead you have to modify your code (resubmit to the app store etc) to use the new '#if UNITY_2017_1_OR_NEWER' in addition. Is this a bug or a 'feature'?