Azure Pipelines can be a great tool for automating your iOS builds server-side and independent of a developers machine.
One of the cool features is that you can run Bash/ZSH scripts on the Mac which builds your iOS app before or after the primary build steps - and all that from the azure-pipelines.yml.
You can use this for example to update the build number in the Info.plist to your customized build number scheme or to do other modifications to the source code before the build process starts.
To do this, add a script step inside the azure-pipelines.yml wherever you want it, like this:
- script: |
SOME_VAR="Production Build"
echo "Building $SOME_VAR"
You can even add more parameters, e.g. a `displayName` to the script step like this:
- script: |
SOME_VAR="Production Build"
echo "Building $SOME_VAR"
displayName: Print which flavor we are building
That displayName will then show up on the pane on the left in Azure Pipelines to describe what is happening whenever you look at how the pipeline is being executed. When you look at it after a couple of months, or if somebody else has to understand what is going on, that can greatly make you both your yml and the pipeline execution overall easier to understand. Particularly, if you script is mainly some regex magic :-)
You can for example change the build number like this prior to a build from such a command line script running on your macOS build machine in Azure Pipelines:
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $BUILD_NUMBER" "$(Build.SourcesDirectory)/myapp/Info.plist
... assuming of course that you filed $BUILD_NUMBER with some meaningful value in your script before.