美文网首页
Debug和Realease环境接口配置(基础)

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

作者: 四叶帅 | 来源:发表于2019-01-21 13:53 被阅读0次

    一般来说,线上环境和测试环境的基础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);    
    

    相关文章

      网友评论

          本文标题:Debug和Realease环境接口配置(基础)

          本文链接:https://www.haomeiwen.com/subject/zqhcjqtx.html