美文网首页
iOS 多环境配置

iOS 多环境配置

作者: iOS刘耀宗 | 来源:发表于2022-02-09 16:21 被阅读0次

    Demo下载

    多环境配置

    先了解一下几个概念:
    Project: 包含了项目所有的代码,资源文件,所有的信息
    Target: 对指定的代码和资源文件的具体构建方式
    Scheme: 对指定 Target 的环境配置

    概念文章详解->

    方案 1:

    多 target进行环境切换
    方案原理: 创建不同的 target, 每个 target 可以设置宏. 比如 ATarget 设置了 Atarget = 1 这个宏. 那么就可以根据这个宏来进行判断是不是ATarget.

    copy 一个 target . 然后修改copy 出来的info.plist 文件名称. 修改对应的配置
    步骤如图:

    创建新的 target.png

    创建宏,根据宏的不同来区分

    OC 环境:

    OC 增加宏.png

    swift 环境
    因为 swift 是没有宏的概念的, swift 的配置和 OC 不一样 如下图:
    需要在定义的宏前面加上 -D

    image.png

    使用


    image.png

    以上代码. 要输出就只能选择 copy 的这个 target才会输出. 因为 copy 这个 scheme 设置了 TEST 宏


    效果.png

    方案缺点:
    多个 target,多个 info.plist 文件, 配置繁琐.易出错.
    方案优点:
    还是有很多的适用场景, 比如做马甲包, 就得用多 target 了. 方便

    方案 2:

    新增构建配置
    点击加号,新增 Configurations


    新增 Configurations.png

    同样的需要针对 scheme 对应的 config 进行一个配置.也是比较繁琐

    使用方式:
    自定义一个 API_URL的变量. 分别针对三种情况进行设置.


    设置.png

    数据会根据选择不同的 scheme 输出对应的数据.
    缺点: 操作很繁琐. 而且在配置表里面不方便统一查看. 不方便

    方案 3:

    创建多 xcconfig 的方式---推荐

    1.创建xcconfig

    创建.png

    我们先创建一个 config 文件夹, 然后根据我们对应的环境创建不同的 xcconfig.我这里是三种三种, 所以我创建了三种


    xcconfig.png

    2.创建新的 scheme

    scheme.png

    3.不同环境对应不同的 scheme 设置

    设置.png

    4.设置变量

    DEBUG.png release.png

    Test.xcconfig 同上

    5.info.plist 声明变量

    声明变量.png

    6. 读取变量

     let path = Bundle.main.path(forResource: "Info", ofType: "plist")!
     let infoDic = NSDictionary(contentsOfFile: path)!
     print("\(infoDic["HOST_URL"]!)")
    

    7. 选择不同的环境run便可以输出不同的 host_ur

    image.png

    相关文章

      网友评论

          本文标题:iOS 多环境配置

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