Debug和Realease环境接口配置(基础)

一般来说,线上环境和测试环境的基础URL和其他常量是不相同的,如果只是频繁修改一个字段,可能会出现忘记修改的情况,导致线上或者是测试代码出现问题,为了避免手动修改导致的错误,因此我们需要进行一些自动的处理。

一、通过Debug和Release代码来判断配置

#ifdef DEBUG
#define BaseURL @"http://debug/api/"
#else
#define BaseURL @"http://release/api/"
#endif

建议是把以上的代码放在一个单独的.h文件里面,在需要的地方引用头文件就好了,这样会显得更加简洁。

二、使用Configurations配置

1.创建三个Configuration Setting File文件,名字随意就好,我这里就叫Commen,Debug,Release

1.png

因为创建的时候是没有默认选中target的,因此需要手动勾选上。


2.png

配置后的图


3.png

2.工程切换到PRODUCT -> info -> Configurations,分别配置Debug和Realease模式下对应的 .xcconfig文件

4.png

3.在Debug.xcconfig和Release里面配置一些东西

  • Debug.xcconfig里面
#include "Common.xcconfig"
/// 测试环境下的URL
BASEURL = @"http:/$()/Debug/app/api/"
///是否是测试环境
STATUS_IS_PRODUCATION = NO
  • Release.xcconfig里面
#include "Common.xcconfig"
/// 测试环境下的URL
BASEURL = @"http:/$()/release/app/api/"
///是否是测试环境
STATUS_IS_PRODUCATION = YES
  • 提示:在//之间使用 $() 来进行转义,如:BASEURL = @"http:/$()/Debug/app/api/"

4.在Commen.xcconfig里面进行配置

GCC_PREPROCESSOR_DEFINITIONS = $(inherited) BASEURL='$(BASEURL)' STATUS_IS_PRODUCATION='$(STATUS_IS_PRODUCATION)'

提示:

  • Common.xconfig中第一个键的配置一定要是:GCC_PREPROCESSOR_DEFINITIONS = $(inherited),否则的话Xcode会报错

  • 自定义键时的语法:宏名='$(key)', 在代码或其他地方使用宏名来引用,'$(key)':通过key来指定每个模式下的对应的自定义键的名字,通常将宏的名字和key的名字保持一致,注意 等号前后一定不能有空格

  • 特别注意:Common.xconfig中第一个key是GCC_PREPROCESSOR_DEFINITIONS = $(inherited) 后面跟自定义的key,注意在第一个key后面跟上自己定义的key的时候一定不要回车换行,敲一个空格,然后在同一行后面追加就行了,换行会编译错误,切记!

5.剩下的就是来查看一下,在 TARGETS -> Build Settings -> Macros 下查看配置是否成功

5.png

6.配置完成之后,分别在Debug模式下和Release模式下打印BASEURL即可

NSLog(@"%@",BASEURL);    
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容