Как в Xcode обновить файл конфигурации .xcconfig на этапе сборки? ⇐ IOS
-
Anonymous
Как в Xcode обновить файл конфигурации .xcconfig на этапе сборки?
У меня есть приложение iOS с конфигурацией Local и связанной схемой. Предполагается, что эта конфигурация указывает на службу, размещенную на собственной машине разработчика (localhost). Поскольку приложение отправляет запросы в эту службу, ему необходимо ссылаться на IP-адрес компьютера. Этот IP-адрес может со временем измениться из-за DHCP и в любом случае будет разным для каждого разработчика.
По этим причинам я пытаюсь найти решение, при котором IP-адрес будет устанавливаться динамически в соответствии с IP-адресом машины, на которой работает Xcode. Основываясь на ответах на StackOverflow, я пришел к следующему выводу.
Во-первых, мой файл Local.xcconfig определяет эту переменную: URL = http:/$()/$(LOCAL_DEV_IP_ADDRESS):8080/my-endpoint Затем я добавил Выполнить скрипт в качестве последнего шага фазы сборки моей цели с помощью следующего bash-скрипта:
if [[ "$CONFIGURATION" == "Local"* ]]; затем filename="${TARGET_BUILD_DIR}/${WRAPPER_NAME}/Local.xcconfig" search='$(LOCAL_DEV_IP_ADDRESS)' replace=`ipconfig getifaddr en0` sed -i '' "s/$search/$replace/g" $filename echo "\$(LOCAL_DEV_IP_ADDRESS) обновлен IP-адресом локального компьютера (`ipconfig getifaddr en0`) в '$filename'" фи После сборки я вижу, что файл Local.xcconfig был успешно обновлен в моей папке сборки, но когда я запускаю его на тестовом устройстве, конфигурация не затрагивается. Когда я делаю запрос, я вижу, что для URL-адреса установлено значение http://localhost:8080/my-endpoint, поскольку URL-адрес в моей конфигурации — http://:8080/ моя конечная точка.
Что я делаю не так и почему мои изменения не влияют на приложение, когда оно запускается на тестовом устройстве?
У меня есть приложение iOS с конфигурацией Local и связанной схемой. Предполагается, что эта конфигурация указывает на службу, размещенную на собственной машине разработчика (localhost). Поскольку приложение отправляет запросы в эту службу, ему необходимо ссылаться на IP-адрес компьютера. Этот IP-адрес может со временем измениться из-за DHCP и в любом случае будет разным для каждого разработчика.
По этим причинам я пытаюсь найти решение, при котором IP-адрес будет устанавливаться динамически в соответствии с IP-адресом машины, на которой работает Xcode. Основываясь на ответах на StackOverflow, я пришел к следующему выводу.
Во-первых, мой файл Local.xcconfig определяет эту переменную: URL = http:/$()/$(LOCAL_DEV_IP_ADDRESS):8080/my-endpoint Затем я добавил Выполнить скрипт в качестве последнего шага фазы сборки моей цели с помощью следующего bash-скрипта:
if [[ "$CONFIGURATION" == "Local"* ]]; затем filename="${TARGET_BUILD_DIR}/${WRAPPER_NAME}/Local.xcconfig" search='$(LOCAL_DEV_IP_ADDRESS)' replace=`ipconfig getifaddr en0` sed -i '' "s/$search/$replace/g" $filename echo "\$(LOCAL_DEV_IP_ADDRESS) обновлен IP-адресом локального компьютера (`ipconfig getifaddr en0`) в '$filename'" фи После сборки я вижу, что файл Local.xcconfig был успешно обновлен в моей папке сборки, но когда я запускаю его на тестовом устройстве, конфигурация не затрагивается. Когда я делаю запрос, я вижу, что для URL-адреса установлено значение http://localhost:8080/my-endpoint, поскольку URL-адрес в моей конфигурации — http://:8080/ моя конечная точка.
Что я делаю не так и почему мои изменения не влияют на приложение, когда оно запускается на тестовом устройстве?
Мобильная версия