The summary.
BEHAVIOUR DIFFERS BETWEEN DEBUG AND RELEASE
Problems appearing only in release are common. Run the release build on a physical device before every submission.
MARK SCHEMES AS SHARED
Only shared ones are in version control, so otherwise the build server and your colleagues use something different.
MOVE BUILD SETTINGS INTO CONFIGURATION FILES
Settings buried in the project file are hard to review, and the project file is where merge conflicts concentrate.
Verify that a clean checkout builds with no manual intervention.
PREFER THE BUILT-IN PACKAGE MANAGER FOR NEW PROJECTS
And commit the resolved version file, so every machine builds identically.
Check that dependencies provide privacy manifests — submissions are rejected without them.
ADD AN EXCEPTION BREAKPOINT AND ENABLE THE RUNTIME CHECKERS
They stop at the cause rather than after unwinding, and catch threading and memory faults immediately rather than intermittently.
PROFILE IN RELEASE, ON THE OLDEST DEVICE YOU SUPPORT
Simulator performance is meaningless — it uses the host machine's power.