前言
- 本文主要介绍App开发中配置多个环境,Debug、Release等
Xcode默认会提供两种配置环境:Debug
和 Release
- Release:运行速度快很多,流畅,打包体积小
- Debug:开发人员开发调试模式
但是有的时候可能这两种模式不太够用,可能会涉及到第三种:正式服务器环境的Debug模式
1、添加Build Configuration
默认我们会看到两种,Debug
和 Release
,下面我们来配置第三种ReleaseTest
(正式服务器环境的Debug模式)
1.1 创建ReleaseTest
选中主要工程的PROJECT -> Info,找到Configurations,点击下方的 +
选择Deplicate "Debug" Configuration
,然后命名ReleaseTest
,这样我们就有三种环境供我们选择
1.2 修改Based on Configurations File
不过记住这时候还没完,还需要将刚刚创建的点开都修改成None
1.3 终端命令
打开终端,cd到指定目录,输入pod install
1.4 回到工程
直至刚刚的None变成Pod-"工程名".releasetest
这样Build Configuration就算配置成功
1.5 设置不同的
2、新建并配置xcconfig文件
2.1 新建xcconfig文件
分别为Debug.xcconfig
,Release.xcconfig
,ReleaseTest.xcconfig
2.2 导入pods 对应的 config
先导入Debug.xcconfig相关信息,这里需要注意一下文件对应路径
分别将三个路径都设置为自己的文件路径
2.3 设置环境变量
可以在Info.plist
下面介绍一下常用的Key
和Value
Key | Value | 介绍 |
---|---|---|
Bundle name | ${APP_DISPLAY_NAME} | App应用名称 |
Executaule file | $(EXECUTABLE_NAME) | 程序安装包的名称 |
Bundle identifier | $(PRODUCT_BUNDLE_IDENTIFIER) | App唯一标识字符串 |
Bundle version string(short) | $(MARKETING_VERSION) | App版本号 |
Bundle version | $(CURRENT_PROJECT_VERSION) | 应用程序版本号 |
Localiztion native development region | $(DEVELOPMENT_LANGUAGE) | 本地化相关,如果用户所在地没有相应的语言资源 |
最后在xcconfig文件当中配置相对应的信息
#include "Pods/Target Support Files/Pods-AutoDecorate/Pods-AutoDecorate.release.xcconfig"
CONFIG_FLAG = RELEASE
APP_DISPLAY_NAME = App名称
PRODUCT_BUNDLE_IDENTIFIER = com.xx.xxx
MARKETING_VERSION = 1.0.0
CURRENT_PROJECT_VERSION = 1
到此多环境配置就差不多好了,
2.4 宏定义使用
简单举个打印信息的处理方式
#ifdef DEBUG // 输出日志 (格式: [编译时间] [文件名] [方法名] [行号] [输出内容])
#define NSLog(FORMAT, ...) fprintf(stderr,"------- 🎈 DEBUG 🎈 -------\n编译时间:%s\n文件名:%s\n方法名:%s\n行号:%d\n打印信息:%s\n\n", __TIME__,[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String],__func__,__LINE__,[[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String])
#elif RELEASETEST
#define NSLog(FORMAT, ...) fprintf(stderr,"------- 🎈 RELEASETEST 🎈 -------\n编译时间:%s\n文件名:%s\n方法名:%s\n行号:%d\n打印信息:%s\n\n", __TIME__,[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String],__func__,__LINE__,[[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String])
#else
#define NSLog(FORMAT, ...) nil
#endif
2.5 切换环境Build Configuration
点击左上角App图标 - > Edit Scheme.. - > Run
2.6 呈现效果
最终在App上面就可以看到不同的效果