我经常在iOS项目中与开发服务器一起工作,该服务器始终在我用来构建应用程序的同一台机器上运行。典型情况是我有一个运行在`http://localhost:3000`上的rails应用程序,并且我正在测试设备。为了在设备上进行测试,我需要一个解析后的IP地址,以便我的应用程序可以在本地网络上与我的开发服务器通信。
我知道可以使用`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}`,但这并没有产生结果。
我知道可以使用`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 singhexport
命令导出该变量,或者将其添加到你的配置文件中,以便每次打开终端时都可以全局访问。 - jaypal singh