Hi. I found that PlayerSettings.SetScriptingDefineSymbols() does not work when target NamedBuildTarget is different to currently selected one.
This breaks user-created build script at first running (because Unity’s default platform is usually different to your buildtarget).
Reported as Case 1413904.