需求分型

开发iOS工程的时候,有时候由于项目的需要,常常有测试环境,发布环境,企业环境等不同环境的配置问题。
这样在代码中就会有很多if-else判断处理逻辑,并且常常由于项目紧急上线导致某个参数忘记修改配置,导致生产事故的发生,这个问题一直比较困扰开发人员,导致开发的程序健壮性不强。

解决方案

经查阅资料发现苹果提供了不同环境的统一配置方案,下面是我写的一个demo,用以配置不同的开发环境。

1首先创建一个Single View Application ,生成PCH文件,并在build setting中配置pch文件路径,我的工程配置路径为$(SRCROOT)/AutoBuildConfigSet-Demo/AutoBuildConfigSet-Demo.pch
2 添加Configuration Settings File文件命名为Enterprise
3 重复步骤2 创建文件结构如下
4 在PROJECT下的Configurations 添加Enterprise 编译模式
5 设置编译模式与我们创建的Configuration Settings File相对应,如下图
6 在TARGETS 下搜索macros 如下图
7 分别在对应的模式上面添加设置编译参数,
DEBUG_VERSION=1
ENTERPRISE_VERSION=1
RELEASE_VERSION=1

用以在pch文件中对各种编译宏的模式判断 ,如下图7,8,9

8 PCH文件夹下添加如下内容
//测试环境
#ifdef DEBUG_VERSION

#define BASE_URL_STR @"http://www.baidu.com/"


//企业环境
#elif defined(ENTERPRISE_VERSION)
#define BASE_URL_STR @"http://www.google.com/"



//AppStore环境
#elif defined(RELEASE_VERSION)
#define BASE_URL_STR @"http://www.sina.com/"
9 添加打印日志如下
10 调整编译的schema的编译模式为 Enterprise模式
11 查看打印日志