第一种:多target方法

第一步,创立一个target

iOS多环境装备的三种计划

创立完成后,咱们会发现多一个plist文件,这个plist便是对应新创立的target

iOS多环境装备的三种计划

第二步,修改target名为咱们需求的名

咱们把新tagswift代码et改个名叫TargetDemo-Dev,由于新的target是一个全新的,所以需求改一个ios14.4值得升级吗bundle ID,咱们设置为com.baoyinxiaofei.TargetDemo-dev,一同他也有一个自己的plist装备文件,也便是上面一同生成的

iOS多环境装备的三种计划

修改target对应的icon

而且咱们ios12也能够为新的tager增加新的AppIcon,创swift选手建一个AppIcon

iOS多环境装备的三种计划

再到buildsetting里边将icon从头设置一下,这样两个target就展现不同的icon了

iOS多环境装备的三种计划

作业,咱们发现ios是什么意思两个target会生成两个app,

iOS多环境装备的三种计划

第三步、不同的target界说不同的宏的值

像咱们平常假如需求在dev和release环境下履行不同的代码,咱们一般是需求界说宏来进行差异,而咱们项目默许有个宏Debug,其实是在下面自界说的

iOS多环境装备的三种计划

已然在这儿,咱们就能够自界说几个宏。例如咱们能够自界说一个dev在debug环境下等于1,在release环境下等于0

iOS多环境装备的三种计划

咱们能够检验一下发现在release和debug方法下作业打印的结果是不一样的,说明咱们界说的宏起作用了。

在swift方法下,他有自己的方法,咱们能够在other Flags里边创立一下变量在swift代码下运用,可是要在apple界说的变量前面加个-D

iOS多环境装备的三种计划

然后能够在swift类里边运用
iOS多环境装备的三种计划

假定咱们项目有多环境,而debug和release不可咱们运用,那咱们只需求在不同的target下将宏界说成不同的值,即可替换不同的环境

可是这种方法比较繁琐,有不同plist文件,还需求再每个target下进行装备,下面咱们看一下第二种ios下载比较简单的方法

第二种:多scheme方法

首要咱们先了解一下三个名词的意义:

  • project:包含了项目悉数的代码,资源文件,悉数信息
  • target:指定代码和资源文件的application详细构建xcode怎样编写c言语方法
  • scheme:指appleid定target的环境装备

第一步、增加Config

从上面方法看,咱们看到其实不同的环境能够在不同Confxcode怎样设置成中文ig下进行装备,target下面只要debug和release,假定咱们能够多几种装备的话,就不ios下载用多个target了,所以咱们给target增加几个Config,如下,咱们能够到txcode是什么arget里边多增加几个Config

iOS多环境装备的三种计划

咱们增加一个叫beta的Config,然后到Eswift代码查询dit scheme里边,能够appreciate看到build Configuration变成了三种方法

iOS多环境装备的三种计划

而咱们target下的悉数涉及到的装备当地也都变成三种方法:

iOS多环境装备的三种计划

第二步、增加schxcode中文emeios退款

可是像swift选手这种方法,咱们每次都需求在Edit scheme里边修改scheme对应的装备环境,也比较费事,这个时分咱们能够到manager scheme里边进行增加Sswift选手cheme,这样就能在同一个target下,直接切换不同的scheme来进行环境的切换

iOS多环境装备的三种计划

咱们再看一下项目的scheme,咱们发现能够直接进行切换

iOS多环境装备的三种计划

第三步、将不同的scheme装备上对应的config

可是为了咱们需求将不通的scheme装备上关于的configuration,这个是在Edit Scheme里边进行配ios下载备,如下图,咱们需求在这儿将不同的scheme装备好不同的confapp装置下载igios14桌面uratiappreciateon即可

iOS多环境装备的三种计划

第四步、在user-Defined中增加需求的变量

可是appearance怎样运用呢,由于增加完configuration后,全局都会装备好,咱们能够在Buidle Settiongsios体系里边增加一个自定xcode病毒检测工具义的User-Defined

iOS多环境装备的三种计划

咱们发现自界说swifter的User-Defined里边也差异了三种configuration,咱们能够在不同装备下界说不同的值

iOS多环境装备的三种计划

第五步、经过info.plist将界说的变量戳穿出去

由于在代码中咱们拿不到装备的值,可是可iOS以拿到plist的值,所以咱们能够在plist里边将装备的变量戳穿出去,然后在代码中读取plisxcode怎样编写c言语t的内容,咱们发现在不同的装备下读取的值是不apple同的

iOS多环境装备的三种计划

咱们也能够经过这种方法让代码在一种环境下作业,在apple一种环境下不作业,一同也能够在能够装备的当地装备不同环境下的内容,例如图标

iOS多环境装备的三种计划

第三种、config装备文件的xcode是什么软件方法

其时这种方法虽然简练许多,ios体系可是也需求进行ios体系许多当地装备,还有一种方法经过装备文件的方法来进行装备,例如咱们appstore常常运ios14.4值得升级吗用的cocoapods会有下面两个装备文件:

iOS多环境装备的三种计划

这个当地在哪里用呢?,咱们能够进入到project的configuration看到

iOS多环境装备的三种计划

这个是swiftlycocoapods创立的,那我appearance们自己来创立一个看看是否能收效

第一步、创立config装备文件

iOS多环境装备的三种计划

咱们创立两个config文件,留意的是这儿文件名命名规矩一般是遵循:文件夹名+ APP名 + 环境名,这个规矩

iOS多环境装备的三种计划

第二步、将config文件装备到对应的configuration中

咱们swift结算体系再将config文件装备到对应的环境中:

iOS多环境装备的三种计划

这儿咱们看到Target也能够挑选swift代码装备文件,由于在Target的BuildSettiOSing里边也有相应环境的装备,也能够经过config文件进行装备,下面红ios是什么意思圈的是代ios下载表每个target的装备

第三步、在config文件中界说相应的变量

咱们在两个config文件里边界说一个ConfigURLStr变量

iOS多环境装备的三种计划

然后在info.pios退款list文件里边将该变量戳穿出去

iOS多环境装备的三种计划

再在代码中进行读取

iOS多环境装备的三种计划

咱们就发现在release环境下和在dev环境下读取的值不一样

这样咱们发现,经过config装备文件进行装备又比scheme便当一点,咱们能够将多config协作多个scheme一同运用,这样会更灵敏。

而且装备文件能够装备许多内容,包含buildSetting里边悉数涉及到环境的选项,例如Other Linker Flags,咱们在config装备上OTHER_LDFLAGS

iOS多环境装备的三种计划

编译一下,到buildsetting里边看下Other Linker Flags

iOS多环境装备的三种计划

咱们发现debug里边装备上了framework,由于项目里边还没有该库,所以会报错

其实OTHER_LDFLAGS便是装备到链接器里边,本质上Cappearanceonfig文件是key-value方法进行装备的,已然OTHER_LDFLAGS能够装备,那buildSetting里边悉数涉及到环境变量的参数都能装备,还有许多参数能够装备,详细能够参看xcodebuildsettings、
iOS运用 xcconfxcode10ig装备文件swift什么意思的若干坑

从上咱们看出,咱们能够经过config文件application对buildSetting进行装备,也便是ios退款能够将装备从buildSetting剥离开来,然后经过环境的不同进行装备

可是假定项目中有多个config文件怎样办呢,而且config和本身buildSetting里边的装备会不会发生冲突呢?例如咱们在项ios14.4怎样样目中运用cocoapods,然后pod install时分会发现cocoapods会提示这个警告:
iOS多环境装备的三种计划
翻译过滤便是cocoapods发现咱们自己装备了conappstorefig文件,所以它没有帮咱们装备,可是需求咱们将cocios14桌面oapods生成的configapplication文件导入到咱们自界说的config文件里边,而appreciate导入方法便是经过include + 文件途径,导入后,咱们在进行pod install,发现警告消除了

iOS多环境装备的三种计划

-** $(inherited) **:便是继承的意思,它会将导入的Confappearanceig文件里相同变量的值拼接起来,可是在buildSetting里边只会显现inherited、里边本身所写的,还有装备的config文件里边的信息,可是实际上悉数的信息都是导入的

咱们做个实验,创立一个ConfigTarget.xcconfig装备文件,然后在里边装备上

iOS多环境装备的三种计划

在原来的config文件中增加一个装备,并导入新config的途径

iOS多环境装备的三种计划

在buildSswift代码etting里边增加一个”MJRefresh”

iOS多环境装备的三种计划

再编译一下,然后在代码中引入cocoapods导入的库并运用相应的类,发现没报错,说明导入成功