参考文章 手把手教你iOS 一个app配置多环境变量git
有时为了开发需求,项目中常常要用到多种环境配置,好比开发环境,测试环境,预发环境,以及正式环境等,对于这个问题,一开始想到的是在pch中用一个变量去控制,每次打包都去修改这个变量的值,历来来达到实现不一样环境的配置,但这种方式明显太Low,xcode能够在同一个app中设置不一样的环境变量(系统默认的是DEBUG和release两种模式),文末会附上demo的github地址github
#if DEBUG
#else
#endif
复制代码
这种写法想必你们都不陌生,那么咱们若是想增长别的变量,实现相似这种去控制运行环境,该如何实现呢?下面我先描述下如何新增相似DEBUG这种配置变量。xcode
以下几个图bash
到project-> info中增长你想要定制的环境变量配置app
到project-build settings中搜索preprocessor macros,修改里面的配置以下:测试
这里要加上${inherited},不然在进行Pod install或者编译的时候会有警告,最终的样式以下:ui
那么进行到这里,就能够再项目中 用了spa
到edit schemes -> run中,能够看到build configurations多了两个,这里就能够切换不一样的环境3d
到如今为止,就能够根据不一样的环境设置不一样的值:code
以上几个图已经代表一切
那么,若是想要实现不一样环境下不一样的app名称或者一个手机上能够安装多个版本的app,那又该如何设置呢?下面主要讲述这一点:
project->build settings店家加号,add user-defnied setting
好比增长了一个ProductDisplayName,下面四个能够设置对应的名称
以后再info.plist中修改默认的名称为$(ProductDisplayName)便可
此外,为了方便还能够新增schemes
点击这个,能够新增对应的schemes
检查下schemes配置,经过manage shcemes入口进入:
右侧只要都选中就好
下面看下target-general
这里的app名称已经设置为本身定义的了
对于一个手机上安装多个不一样环境的app也是如此,只须要在add user-defined setting中增长一组配置去设置bundle id,而且把info.plist中的Bundle Identifier替换为本身设置的便可,替换方式和name替换方式同样