前言
在配置宏定义参数时,会发现一个问题,在需要临时修改或者测试一些数据时,修改宏,如果不修改,就多写一个,注释掉原来的,然后测试后,再换回来,当然了,如果一两个宏,可以这样,但是,如果每次改的比较多,建议用环境变量来配置,也就是用 xcconfig 控制 Debug 或 Release编译时,同一个宏名,取到的值就会不同;或许现在的PCH文件里面是下面这样的......
#define API_URL @"http://www.api000.com/" //#define API_URL @"http://1.1.1.12:00000/"
xcconfig
可以用环境变量来配置,使API_URL的值在Debug和Release不同的环境下,各取所需。
1.新建 xcconfig 文件
注意在新建 xcconfig 文件时,勾选加入target。
2.设置宏
在上一步中,新建了三个 xcconfig 文件,Commonxcconfig.xcconfig 放公共宏或做公共设置,Debugxcconfig.xcconfig做Debug环境,Releasexcconfig.xcconfig做Release环境,然后添加API_URL宏并配置。
Debugxcconfig.xcconfig
Releasexcconfig.xcconfig
Commonxcconfig.xcconfig
在 Debugxcconfig.xcconfig 和 Releasexcconfig.xcconfig 中分别引用了:
Pods/Target Support Files/Pods-TestApp/Pods-TestApp.debug.xcconfig
Pods/Target Support Files/Pods-TestApp/Pods-TestApp.release.xcconfig
这是Debug和Release环境下默认的配置文件,在我们自定义的配置文件中,引用相对应的默认配置。
Commonxcconfig.xconfig中第一个key是GCC_PREPROCESSOR_DEFINITIONS = $(inherited) 后面跟自定义的key,在第一个key后面跟上自己定义的key的时候一定不要回车换行,敲一个空格,然后在同一行后面追加就行了,换行会编译错误, 不能换行。
3.配置环境
这样就可以用 xcconfig,定义在编译环境下的宏,如果上一步中 Pods/Target Support Files/Pods-TestApp/Pods-TestApp.debug.xcconfig 和 Pods/Target Support Files/Pods-TestApp/Pods-TestApp.release.xcconfig 路径不确定,终端进入项目文件夹,pod install ,终端会有提示路径,将该路径复制后引用就可以。
配置自定义编译环境