我經常在iOS項目上開發一個開發服務器,它始終運行在我用於構建應用程序的同一臺機器上。一個典型的情況是,我有一個軌道應用程序在http://localhost:3000
上運行,並且正在測試設備。爲了在設備上測試,我需要一個解決的IP地址,以便我的應用程序可以與本地網絡上的我的開發服務器通信。在Xcode中創建一個動態的預處理器宏
我知道我可以使用GCC_PREPROCESSOR_DEFINITIONS
將某些環境變量設置爲預處理器宏,並且我知道我可以通過在bash腳本中運行ifconfig | grep -E 'inet.[0-9]' | grep -v '127.0.0.1' | awk '{ print $2}'
來獲取生成計算機的IP地址。
我想要做的是使用一個值,如'@"http://${BUILD_MACHINE_IP_ADDRESS}:3000"'
定義GCC_PREPROCESSOR_DEFINITIONS
MY_SERVER_URL
,但我想不通的是如何使用上述ifconfig
腳本設置${BUILD_MACHINE_IP_ADDRESS}
。
我已經考慮使用運行腳本構建階段來編輯配置文件,但是像這樣的變化的後果是令人惱火的。例如,我不希望源代碼管理中包含該文件,因爲我的IP地址經常更改,並且會導致衝突。但是我需要將它包含在項目文件中,以便應用程序可以訪問它。這將導致項目構建所需的文件,但不包含在源代碼管理中,這很醜陋。
我也試着在運行腳本構建階段嘗試運行export BUILD_MACHINE_IP_ADDRESS=`ifconfig | grep -E 'inet.[0-9]' | grep -v '127.0.0.1' | awk '{ print $2}`
,但不會產生結果。
這個怎麼樣?'BUILD_MACHINE_IP_ADDRESS = $(ifconfig | grep -E'inet。[0-9]'| grep -v'127.0.0.1'| awk'{print $ 2}')' –
@Jaypal yes我想要做什麼,但我不知道*在哪裏*我會這樣做,以使編譯時可用的變量。 –
您可以在命令行上「導出」該變量,或者將其添加到您的配置文件中,使其每次打開終端時都可以全局使用。 –