如何将用户定义的宏传递给xcodebuild?

前端之家收集整理的这篇文章主要介绍了如何将用户定义的宏传递给xcodebuild?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在命令行中通过 xcodebuild构建我的项目.不在xCode中.我想将一些marc传递给项目,以便它可以影响代码.如下面的代码

#if (API_TYPE == 1)
  #define URL_API @"https://dapi.xxx.com/1.1/"
#elif (API_TYPE == 2)
  #define URL_API @"https://tapi.xxx.com/1.1/"
#elif (API_TYPE == 3)
  #define URL_API @"https://api.xxx.com/1.1/"
#else
  #error "API_TYPE value error! should be only value 1,2,3 !"
#endif

我想在代码文件之外传递API_TYPE的定义.比如通过xcodebuild命令.
但它不能像这样工作:

xcodebuild -sdk xxx -target xxx SYMROOT=${XCSYMROOT} API_TYPE=${APITYPE}

API_TYPE的值未更改.但SYMROOT的价值发生了变化.
那么我该如何实现将值传递给API_TYPE呢?

解决方法

我知道这是一个旧帖子,但为什么不使用:

xcodebuild GCC_PREPROCESSOR_DEFINITIONS='$GCC_PREPROCESSOR_DEFINITIONS API_TYPE=1'

如果您希望能够选择覆盖应用程序中的现有定义,只需编写如下代码

#define DEFAULT_API_TYPE 1

#ifdef API_TYPE
  #define REAL_API_TYPE API_TYPE
#else
  #define REAL_API_TYPE DEFAULT_API_TYPE
#endif

猜你在找的Xcode相关文章