如何为你的App配置多环境变量

参考文章 手把手教你iOS 一个app配置多环境变量git

有时为了开发需求,项目中常常要用到多种环境配置,好比开发环境,测试环境,预发环境,以及正式环境等,对于这个问题,一开始想到的是在pch中用一个变量去控制,每次打包都去修改这个变量的值,历来来达到实现不一样环境的配置,但这种方式明显太Low,xcode能够在同一个app中设置不一样的环境变量(系统默认的是DEBUG和release两种模式),文末会附上demo的github地址github

#if DEBUG

#else

#endif
复制代码

这种写法想必你们都不陌生,那么咱们若是想增长别的变量,实现相似这种去控制运行环境,该如何实现呢?下面我先描述下如何新增相似DEBUG这种配置变量。xcode

1、第一步

以下几个图bash

01

到project-> info中增长你想要定制的环境变量配置app

02

  • 注意,若是有cocoapods,这里增添后要进行一次pod install,pods会自动去配置相关的环境

2、第二步

02-01

到project-build settings中搜索preprocessor macros,修改里面的配置以下:测试

02-02

这里要加上${inherited},不然在进行Pod install或者编译的时候会有警告,最终的样式以下:ui

02-03

那么进行到这里,就能够再项目中 用了spa

3、第三步

03-01

到edit schemes -> run中,能够看到build configurations多了两个,这里就能够切换不一样的环境3d

03-02

到如今为止,就能够根据不一样的环境设置不一样的值:code

03-03

03-04

03-05

以上几个图已经代表一切

那么,若是想要实现不一样环境下不一样的app名称或者一个手机上能够安装多个版本的app,那又该如何设置呢?下面主要讲述这一点:

第四步

05-01

project->build settings店家加号,add user-defnied setting

05-02

好比增长了一个ProductDisplayName,下面四个能够设置对应的名称

05-03

以后再info.plist中修改默认的名称为$(ProductDisplayName)便可

此外,为了方便还能够新增schemes

05-04

点击这个,能够新增对应的schemes

05-05

检查下schemes配置,经过manage shcemes入口进入:

05-06

右侧只要都选中就好

下面看下target-general

05-07

这里的app名称已经设置为本身定义的了

05-08
以后在各自的scheme中的run-build configurations中设置对应的运行环境

05-09

05-10

05-11

05-12

对于一个手机上安装多个不一样环境的app也是如此,只须要在add user-defined setting中增长一组配置去设置bundle id,而且把info.plist中的Bundle Identifier替换为本身设置的便可,替换方式和name替换方式同样

  • 若是有cocoapods,必定要注意pod install,不然会报错

demo地址

相关文章
相关标签/搜索