Подтвердить что ты не робот

Как настроить полные URL-адреса в файлах xcconfig

У меня есть файл xcconfig, который содержит конфигурацию, для которой поражает мое приложение. В режиме отладки это будет другой сервер, чем для релизов.

Проблема заключается в том, что URL-адрес формы http://www.stackoverflow.com рассматривается как комментарий после двойной косой черты. Итак, строка, которую я получаю в коде, это "http:"

Я читал, что могу установить флаг -traditional build на Info.plist, мне было интересно, есть ли у кого-то аналогичная проблема и решил ли он?

Спасибо.

4b9b3361

Ответ 1

Вот простой способ:

WEBSITE_URL = https:/$()/www.example.com

Ответ 2

Я также не мог понять, как использовать двойную косую черту в файле xcconfig. Но я нашел обходное решение в

из списка рассылки пользователей Xcode: в файле xcconfig сохраните URL-адрес без схемы http:

MYURL = stackoverflow.com

В Info.plist установите значение свойства

http://${MYURL}

Ответ 3

Просто объявите

SIMPLE_SLASH=/

Затем ваш URL становится

http:$(SIMPLE_SLASH)/www.stackoverflow.com

Ответ 4

SLASH=/

API_URL=http:$(SLASH)/endpoint.com

Ответ 5

Вы не должны использовать файл xcconfig для этого параметра.

Файл xcconfig не является "нормальным" заголовком или файлом модуля, который является входом препроцессора и в конечном итоге является входом для компилятора. Нигде не указано, как парсер xcconfig обрабатывает кодировку символов, независимо от того, распознает ли она escape-последовательности, расширяет ли он макросы и как символьные литералы определяются и многое другое.

В этом случае гораздо лучше иметь заголовочный файл "config.h" и использовать условное выражение на основе определения препроцессора:

#if defined (DEBUG)
    NSURL* url = ...
#else
    NSURL* url = ...
#endif

Здесь DEBUG для конфигурации Debug по умолчанию. Вы можете # определить любое другое определение в настройках сборки в разделе "Макросы препроцессора".

Ответ 6

Вы можете использовать обратную косую черту для выхода:

URL = "http:\/\/mydomain.com"

ИЗМЕНИТЬ

Не забудьте очистить проект до повторной сборки.