Utilice configuraciones de compilation definidas por el usuario en un file .plist personalizado

Tengo diferentes configuraciones de compilation (Depuración, Etapa, Prod) definidas para mi aplicación y utilizo configuraciones de compilation definidas por el usuario :

introduzca la descripción de la imagen aquí

configurar el inicio de session de Facebook y otras cosas en el file Info.plist :

introduzca la descripción de la imagen aquí

En este escenario, la notación $(USER_DEFINED_SETTINGS) funciona.

Cuando intenté configurar Google SignIn , que requiere usar un file .plist adicional ( GoogleService-Info.plist ), y utilicé la configuration definida por el usuario de la misma manera que lo hice en el file Info.plist , no funcionó .

¿Cómo puedo usar las configuraciones definidas por el usuario en files .plist personalizados? Si no puedo, ¿cómo puedo solucionarlo?

NO es posible usar configuraciones definidas por el usuario en el file .plist personalizado , por lo que debe manejar esto de otra manera.

Aunque, puede copyr su file personalizado .plist en el lugar correcto:

  1. Cree una nueva carpeta (por ejemplo: GoogleServiceInfoPlists ).
  2. Copie allí todos los files .plist para cada entorno (por ejemplo: GoogleService-Info-Debug.plist, GoogleService -Info-Stage.plist y GoogleService -Info-Prod.plist ).
  3. Agregue nueva Run Script Phase (Xcode: Target-> Fases de compilation -> button "+" ).
  4. Utilice el script a continuación para copyr (replace) el file .plist para un entorno dado al directory principal (es src en mi caso):

     cp "${SRCROOT}/src/Resources/GoogleServiceInfoPlists/GoogleService-Info-$CONFIGURATION.plist" "${SRCROOT}/src/GoogleService-Info.plist" 

${SRCROOT} : pnetworkingefinido, apunta a la location de su proyecto.

$CONFIGURATION – pnetworkingefinido, es tu configuration de compilation, en mi caso: Debug , Stage , Prod . Puedes cambiar esto en Xcode: Proyecto (¡no objective!) -> Información .

Tenga en count que el file src/GoogleService-Info.plist debe agregarse al proyecto Xcode ( Generar fases-> Copiar package de resources ) mientras que /src/Resources/GoogleServiceInfoPlists/GoogleService-Info-* no es necesario.