ios - ¿Cómo configuro las URL completas en los archivos xcconfig?
iphone xcode (6)
Aquí hay una solución simple:
WEBSITE_URL = https:/$()/www.example.com
Tengo un archivo xcconfig que contiene una configuración para qué servidor debe golpear mi aplicación. En el modo de depuración, este será un servidor diferente de las versiones de lanzamiento.
El problema que tengo es que una URL del formulario http://www.stackoverflow.com se trata como un comentario después de la doble barra. Entonces la cadena que obtengo en el código es ''http:''
He leído que puedo poner una bandera de construcción tradicional en Info.plist, me preguntaba si alguien más ha tenido un problema similar y lo ha resuelto.
Gracias.
No debe usar un archivo xcconfig para esta configuración.
Un archivo xcconfig no es un archivo de encabezado o módulo "normal" que es la entrada del preprocesador y, finalmente, la entrada para el compilador. No se especifica en ninguna parte cómo el analizador de archivos xcconfig trata la codificación de caracteres, si reconoce secuencias de escape, si expande macros y cómo se definen los literales de caracteres y mucho más.
En este caso, es mucho mejor tener un archivo de encabezado "config.h" y usar un condicional basado en una definición de preprocesador:
#if defined (DEBUG)
NSURL* url = ...
#else
NSURL* url = ...
#endif
Aquí, DEBUG
se define para la configuración de depuración de forma predeterminada. Puede # definir cualquier otra definición en la configuración de compilación en "Macros de preprocesador".
Puedes usar barras diagonales inversas para escapar:
URL = "http:////mydomain.com"
EDITAR
No te olvides de limpiar tu proyecto antes de volver a construir.
Solo declara
SIMPLE_SLASH=/
Entonces su URL se convierte
http:$(SIMPLE_SLASH)/www..com
Tampoco pude descifrar cómo usar una doble barra en un archivo xcconfig. Pero encontré una solución en
de la lista de correo de Xcode-users: en el archivo xcconfig , guarde la URL sin el esquema http:
MYURL = .com
En Info.plist , establezca el valor de la propiedad en
http://${MYURL}
SLASH=/
API_URL=http:$(SLASH)/endpoint.com