If your mobile test setup requires opening a properties file and hand-editing the platform, UDID, or app path before every run, that workflow falls apart the moment you move to CI. You can't edit a file inside a pipeline, and a wall of -D flags is its own maintenance burden.
The fix is to stop treating configuration as one flat file and start treating it as independent dimensions — platform, device, environment, test phase — each a named profile that activates on its own. Spring Boot composes them from SPRING_PROFILES_ACTIVE, so switching from Android to iOS becomes a profile name, not a diff.
This guide walks through that refactor on a real Appium + Spring Boot framework:
One detail worth knowing before you start: Spring's precedence runs base file → imported profiles → auto-discovered files → environment variables → command-line properties. The article keeps one deliberate
exception — driver.udid — where a local file is allowed to override the placeholder, and it explains exactly why that exception earns its place.






