Como tener valores en constantes, diferentes para cada contexto de desarrollo en XCode

Últimamente en las aplicaciones en las que estoy trabajando, me vi con la necesidad de manejar distinta información dependiendo el contexto en el cual compilaba mi aplicación, este tipo de problema ya lo había solucionado en aplicaciones anteriores, generando constantes y utilizando las directivas #ifdef|#else\#endif de Objective-C con XCode, pero el resultado es un archivo muy grande y "sucio", con código repetitivo y complicado de mantener, además que por la forma en la que lo había hecho dependía de manualmente comentar y descomentar líneas de las constantes (paso que ahora sé pudo haber sido más manejable con diferentes esquemas de compilación).

Investigando varios días pensé primero en utilizar archivos plist para cada contexto, denominándolos Development-config.plist, Staging-config.plist y Production-config.plist, pero al final no me agradó la idea ya que siento que este tipo de archivos es algo inseguro si uno abre el ipa puede sacarlos y ver el contenido, lo cual dejaría expuestas mis llaves de API que tendría almacenadas en ese archivo; es importante destacar que ningún método es 100% seguro y de una u otra forma, una persona con el conocimiento y las ganas, puede sacar toda esa información que queremos tener lo más segura posible.

Tomando en cuenta estas ideas, decidí ver si había alguna otra forma de generar este tipo de configuraciones para que el cambio de una a otra fuera de lo mas sencillo y transparente; fue cuando me encontré con los archivos xcconfig. Con este tipo de archivos los cuales para ser sincero desconocía hasta este momento puedo tener en un archivo de texto plano todas las configuraciones posibles en una aplicación y establecerla en uno de los esquemas; al permitirme establecer las configuraciones de cada esquema de la aplicación, me permite escribir más fácilmente las definiciones preprocesadas teniendo así constantes establecidas al momento de correr la aplicación (creo yo que es en este momento si me equivoco les pido me corrijan :)).

Este tipo de configuraciones pueden incluso establecerse a mano en las Build settings del proyecto pero creo que es mucho más cmómodo utilizar estos archivos, ya que el mantenimiento puede ser más rápido y limpio.

Prepararé un tutorial con todo el proceso que seguí para lograr lo que buscaba en el cual me apoye lógicamente de muchos más tutoriales en internet y de la ayuda de algunos expertos.

Saludos!