用于指定API目标的自动测试和Xcode配置文件
因此,我正在编写从命令行运行的自动化测试,以测试iOS应用程序的UI。我使用bash脚本清理和构建项目,并运行UI自动化测试 问题是,我希望命令行脚本能够在我的Xcode项目中更改一个C标志,该标志确定我的应用程序指向哪个服务器。例如:用于指定API目标的自动测试和Xcode配置文件,xcode,xcodebuild,ios-ui-automation,Xcode,Xcodebuild,Ios Ui Automation,因此,我正在编写从命令行运行的自动化测试,以测试iOS应用程序的UI。我使用bash脚本清理和构建项目,并运行UI自动化测试 问题是,我希望命令行脚本能够在我的Xcode项目中更改一个C标志,该标志确定我的应用程序指向哪个服务器。例如: ./run-test -target "Debug-Server" 将C标志服务器\u地址的值更改为调试\u服务器,同时: ./run-test -target "QA-Server" 将C标志服务器地址的值更改为QA_服务器 为了做到这一点,我计划创建一个
./run-test -target "Debug-Server"
将C标志服务器\u地址的值更改为调试\u服务器,同时:
./run-test -target "QA-Server"
将C标志服务器地址的值更改为QA_服务器
为了做到这一点,我计划创建一个.xcconfig文件,该文件被馈送到xcodebuild中,该文件将在代码中设置C标志以指向正确的服务器。大概是这样的:
xcodebuild -target <TARGET_NAME> -configuration Debug-QA.xcconfig -sdk "$DEVICE_SLUG""$CURRENT_SDK" DSTROOT=. clean build
xcodebuild-target-configuration Debug-QA.xcconfig-sdk“$DEVICE\u SLUG”“$CURRENT\u sdk”DSTROOT=。干净利落
我对.xcconfig文件一点也不熟悉,所以我对它们有一些问题
我找到了答案,使用了.xconfig和#ifdef语句的组合: 在我声明服务器的配置文件中:
#ifdef USE_DEV
#define SERVER_ADDRESS DEV_SERVER_ADDRESS //USED IN AUTOMATED TESTING DEBUG SERVERS
#elif defined USE_QA
#define SERVER_ADDRESS QA_ADDRESSS //USED IN AUTOMATED TESTING STAGING SERVERS
#elif defined USE_LIVE
#define SERVER_ADDRESS LIVE_SERVER_ADDRESS //USED IN AUTOMATED TESTING LIVE SERVERS
#else
#define SERVER_ADDRESS DEV_SERVER_ADDRESS //DEFAULT VALUES
#endif
然后,我使用了三个.xcconfig文件,其中说明了以下内容:
dev.xconfig:
QA.xcconfig:
LIVE.xconfig:
GCC_PREPROCESSOR_DEFINITIONS = USE_DEV
GCC_PREPROCESSOR_DEFINITIONS = USE_QA
GCC_PREPROCESSOR_DEFINITIONS = USE_LIVE