- The first is related to different targets of the same project where you can define specific settings for them. It's used normally to maintain in a single project, different versions of the same core project. For example: a paid version and a trial version, you would have a target for the paid version and one target for the trial
- Here you can define the configurations for your debug and release schemes. For example:
You can see I added a new configuration. You will now have different settings on the actual targets:
You can also do some fun stuff, like selecting your definitions on the target, copy and paste them on a file (*.xconfig file). You can them use this file as configuration, by defining it's name:
This is particularly useful to maintain versions of the settings on the repository.
Edit 1.0:
I edited the second point