美文网首页
利用Build Configuration来给iOSAPP配置多

利用Build Configuration来给iOSAPP配置多

作者: 白河三 | 来源:发表于2018-07-30 17:47 被阅读118次

    一、概述

    现在项目根据URL的不同至少需要测试和开发环境,一开始是直接在项目里通过#ifdef DEBUG来区分的,直接用系统提供的debug和release模式分别做测试和开发模式。

    #ifdef DEBUG
    NSString *const MGDomain = @"www.baidu.com";
    #else
    NSString *const MGDomain = @"www.google.com";
    #endif
    

    这样就导致正式环境没法进行DEBUG调试,还有就是测试人员要求手机可以同时安装正式环境和测试环境的APP,如果再增加一个预发布环境就更麻烦了,通过手动来更改会很麻烦甚至出错。

    二、中心思想

    1.Release和Debug的区别是,Release是不能调试程序,因为默认是屏蔽了可调试的一些参数,具体可以看BuildSetting里面的区别,而且Release编译时有做编译优化,会比用Debug打包出来的体积更小一点。所以这两个是一个编译选择
    2、我们需要使每一个环境(开发,测试、预发布)都可已选择使用debug还是release
    3、通过新建Scheme来和每一种环境一一对应


    image.png

    三、实践操作

    1、新建Scheme

    我这里分为测试和生产环境需要创建两个Scheme,名字分别在后面加上.test和.product


    image.png

    2、新建Build Configuration

    我们有两个环境对应两个Scheme,每一个scheme都可以debug和release,所以需要四个Configuration。
    在project的info设置里可以找到Configulations可以看到系统已经为我们配置了debug和release,我们可以把他们做生产环境的一对配置。
    然后,分别复制debug和release创建两个新Configuration,做测试环境的一对配置


    image.png
    image.png

    项目通过cocopods管理的,会自动配置,我们需要执行pod install

    3.edit scheme

    打开edit scheme选项,run模式下对应选择debug,Archive模式下选择release

    image.png

    4.通过User-Defined Setting 来设置项目名字和bundleID

    在project的build Setting里点击加号


    image.png

    对应四个配置debug和release,debug.test和release.test分别设置


    image.png

    然后回到工程info.plist处,在Bundle identifier和Bundle display name处获取自定义设置


    image.png

    5、Preprocessor Macros设置

    还是通过设置宏来区分不同的环境


    image.png

    在测试环境的两个debug.test和release.test增加MEIGUO=1这个宏,正式环境debug和release增加MEIGUO=0这个宏


    image.png

    在工程中我们就还可以通过MEIGUO=1来分别是不是测试环境URL了

    #if MEIGUO == 1
    NSString *const MGDomain = @"www.baidu.com";
    #else
    NSString *const MGDomain = @"www.google.com";
    #endif
    

    同时每个环境对应的APP信息可以在User-Defined Setting 里设置
    参考

    相关文章

      网友评论

          本文标题:利用Build Configuration来给iOSAPP配置多

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