第一步、添加Config
不同的环境可以在不同Config下进行配置,target下面只有debug和release,假如我们可以多几种配置的话,就不用多个target了,所以我们给target添加几个Config,如下,我们可以到target里面多添加几个Config
若装有cocoaPods 需pod install一下
我们添加一个叫beta的Config,然后到Edit scheme里面,可以看到build Configuration变成了三种模式
而我们target下的所有涉及到的配置地方也都变成三种模式:
第二步、添加scheme
但是像这种方式,我们每次都需要在Edit scheme里面修改scheme对应的配置环境,也比较麻烦,这个时候我们可以到manager scheme里面进行添加Scheme,这样就能在同一个target下,直接切换不同的scheme来进行环境的切换
我们再看一下项目的scheme,我们发现可以直接进行切换
第三步、将不同的scheme配置上对应的config
但是为了我们需要将不通的scheme配置上对于的configuration,这个是在Edit Scheme里面进行配置,如下图,我们需要在这里将不同的scheme配置好不同的configuration即可
第四步、在user-Defined中添加需要的变量
但是怎么使用呢,因为添加完configuration后,全局都会配置好,我们可以在Buidle Settiongs里面添加一个自定义的User-Defined
我们发现自定义的User-Defined里面也区分了三种configuration,我们可以在不同配置下定义不同的值
第五步、通过info.plist将定义的变量公开出去
因为在代码中我们拿不到配置的值,但是可以拿到plist的值,所以我们可以在plist里面将配置的变量公开出去,然后在代码中读取plist的内容,我们发现在不同的配置下读取的值是不同的
我们也可以通过这种方式让代码在一种环境下运行,在一种环境下不运行,同时也可以在可以配置的地方配置不同环境下的内容,例如图标