美文网首页
xconfig配合scheme配置环境

xconfig配合scheme配置环境

作者: 傲世泡泡 | 来源:发表于2021-06-10 14:36 被阅读0次

    这次实践的目的: 

    1.通过xconfig给不同scheme配置不同的base_URL

    2.通过xconfig给不同scheme配置 build Setting设置

    开始:

    1.先新建一个工程

    2.使用cocoaPods随便管理个第三方库

    3.新增scheme,Debug、Beta 两个

    4.打开scheme,选择Debug ->build Config->选择Debug,Beta 同理,XconfigDemo ->对应Release

    这时候就可以看到build Setting 里面 多了一个beta了

    beta的所有设置 暂时都跟Debug一样

    5.

    6.这时候 从新pod install 一下,Pods里面就多了一个beta的配置了,先编译一下 看看有没有问题

    7.刚刚我们生成了3个环境的xconfig配置文件,但是还没有生效。

    8.然后到这里去 指定对应的配置文件, 应该是配置的Pods的xconfig

    9.当你修改后 就有个问题 pods的xconfig怎么办?

    所以 我们需要在我们的xconfig文件里面引入 pods的xconfig,只需要指定文件路径就好

    #include "Pods/Target Support Files/Pods-XconfigDemo/Pods-XconfigDemo.debug.xcconfig"

    就是说 先获取到 Pods的xconfig文件的路径

    10.然后将那个文件 直接拖到 我们的xconfig里面 就可以看到完整路径

    我们只需要 项目名 后面的 那部分就好了,引入后 再定义一个 host地址

    最下面那个路径 只是为了方便我们看的 用完了 就删了

    11.定义一个 host地址,像我这样,beta 和 release同理

    最好先按我这样写个IP 最好先按我这样写个IP 最好先按我这样写个IP

    12.最好先按我这样写个IP,等会儿讲原因,弄好了后 切换scheme 跑一下 看看能不能 跑起来

    13.这三个scheme都切换跑一下 看看行不行

    14.这里顺便说一下 xconfig的原理,它其实 就是一种 key-Value的取,定义一个键 设置一个值,最后就按这个键进行取值,

    既然xconfig 是通过键取值 那么 我们就需要通过一个 取值的办法 得到 我们定义的host,

    到info.plist里面 添加一个host的键值对,

    HOSR_URL 是项目取值用的键,

    ${Host_URL} 是在取xconfig里面的值

    键值对

    15.定义好了 到项目里 找个地方取值,然后跑一下项目 看看打印

    NSString * path = [NSBundle.mainBundle pathForResource:@"Info" ofType:@"plist"];

    NSDictionary * infoDic = [NSDictionary dictionaryWithContentsOfFile:path];

    NSLog(@"Host:%@",infoDic[@"HOST_URL"]);

    16,分别切换一下 scheme 看看打印啥模样?是对应刚才自定的host_ur

    结束:

    多环境配置不就实现了啊,然后我们看之前我说的 我们实践的目的

    这次实践的目的:

    1.通过xconfig给不同scheme配置不同的base_URL

    2.通过xconfig给不同scheme配置 build Setting设置

    惊喜:

    第二个 build Setting里面 任意设置 都可以在xconfig里面 根据不同的scheme进行 键值对的设置,当然没这么简单

    https://xcodebuildsettings.com/,这个地址是查 对应设置的 key的,

    比如我们要设置 Header Search Path,在刚刚那个地址去搜索

    HEADER_SEARCH_PATHS

    HEADER_SEARCH_PATHS,得到key是这个,build Setting里面的 你以后需要了慢慢玩

    问题+坑:

    第一 :假设我们的xconfig里面定义了一个key,Pods的xconfig也定义了怎么办?

    我们看看Pods里面 这个关键字,就是 继承的意思,继承别人的定义

    第二: 我们release环境 一般不会是个IP吧 你试试用个正式点的地址看看

    比如: https://www.baidu.com,你注意看你定义的位置,//后面的变色了,//表示注释

    结果:Host_URL = https:/$()/www.baidu.com,特殊定义符,记得转义一下哦

    结尾:

    还是验证一下配置是 build setting,我在Debug.xcconfig里面 配置了 Header Search Path

    以后build Setting 里面有任何配置 只需要在xcconfig里面配置就行了 这样 到底配置了些啥 一目了然

    相关文章

      网友评论

          本文标题:xconfig配合scheme配置环境

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