如何在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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容