如何在iOS项目中创建多个target?
现在的项目里面创建了多个target(分别是:生产环境、测试环境、开发环境),每个target对应一个环境,并配置不同的info.plist文件,这样做的好处是不用开发人员每次都要去手动开启/注释某些代码去发布,而是先配置好,到时候直接切换target就可以打包上线了,是不是很期待呢?
创建不同的target
直接贴图
点击完成后,将名称改为projectName-dev和projectName-test,默认的projectName当生产环境。
⚠️:创建不同的target时,有个细节需要注意,那就是你的项目如果是xcworkspace时,先pod install后再去按照贴图上面的操作去完成,否则,先创建再pod install,projectName-dev和projectName-test就会出现报错,报错原因是pod的配置信息没完成或文件路径没索引到(我之前就遇到过,试了好多次,还好经过测试跳过了这个坑,😄)。
改名称
targets分别改成:<#projectName#>、<#projectName#>-dev、<#projectName#>-test
scheme也分别改成:<#projectName#>、<#projectName#>-dev、<#projectName#>-test
info.plist分别改成:info.plist、<#projectName#>-dev-info.plist、<#projectName#>-test-info.plist
⚠️:
1、这里的三个环境都是一一对应的。
2、.plist的作用就是可以配置不同的信息,比如:Bundle name、Bundle versions string, short、Bundle version等,以区分下不同环境。
别忘了在build setting–>Info.plist File配置
例如:
//:configuration = DebugINFOPLIST_FILE = IOS-WeidaiCreditLoan/IOS-WeidaiCreditLoan-dev-Info.plist
//:configuration = ReleaseINFOPLIST_FILE = IOS-WeidaiCreditLoan/IOS-WeidaiCreditLoan-dev-Info.plist
//:completeSettings = someINFOPLIST_FILE
预定义宏(Build Setting–>Preprocessor Macros)
这个宏是一个全局宏,在所有/整个工程的代码中都是有效的,我们可以在这里添加上环境与处理的宏(例如:WD_Environment_Mode,这个是随便自己取的)
然后在.pch文件中
/**
WD_Environment_Mode
0:生产环境
1:测试环境
2:开发环境
*/#ifdef WD_Environment_Mode
#ifWD_Environment_Mode == 0
#defineWDAPIServerUrl @""
#defineJSPatchAppKey @""
#elifWD_Environment_Mode == 1
#defineWDAPIServerUrl @""
#defineJSPatchAppKey @""
#elifWD_Environment_Mode == 2
#defineWDAPIServerUrl @""
#defineJSPatchAppKey @""
#else
#warning"未匹配环境"
#endif
到此,在项目中创建多个target的目的就已经达到了。
iOS技术交流:566912706