一、创建三个Configuration Settings File文件,分别命名
1.Generator.xcconfig
公用编辑器配置,预编译定义
2.Debug.xcconfig
开发环境配置
3.Release.xcconfig
$生产环境配置
二、配置Generator.xcconfig文件
预处理器定义,格式照着写就行:两个参数,后面是自动取相应配置文件的值,每组以空格间隔开来。
参数1:IS_PRODUCATION
参数2:SERVER_HOST
// Generator.xcconfig
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) IS_PRODUCATION='$(IS_PRODUCATION)' SERVER_HOST='$(SERVER_HOST)'
三、配置Debug.xcconfig和Release.xcconfig文件
其实后面可能会报错,和Pods资源文件有冲突,所以后面还要加上一行代码,重点是URL链接写法。
// Debug.xcconfig
/// 是否生产环境 - 不是
IS_PRODUCATION = NO
/// 服务器
SERVER_HOST = @"https:/$()/www.测试服.com/"
/// 引入Generator.xcconfig文件
#include "Generator.xcconfig"
// Release.xcconfig
/// 是否生产环境 - 是
IS_PRODUCATION = YES
/// 服务器
SERVER_HOST = @"https:/$()/www.线上服.com/"
/// 引入Generator.xcconfig文件
#include "Generator.xcconfig"
四、配置对应模式下的.xcconfig文件,操作如图:
image.pngPROJECT -> info -> Configurations,展开对应项最里层
五、查看配置是否正确,操作如图:
image.png image.png1、TARGETS -> Build Settings 搜索“Preprocessor Macros”项
2、TARGETS -> Build Settings 拉到最下面,显示“User-Defined”项
六、添加对应Scheme文件,以后选择编译运行就可以指定配置环境了
image.pngimage.png
image.png
七、完成,分别测试取值情况
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
NSLog(@"IS_PRODUCATION = %@ SERVER_HOST = %@", IS_PRODUCATION ? @"生产环境" : @"开发环境", SERVER_HOST);
return YES;
}
打印结果:
IS_PRODUCATION = 开发环境 SERVER_HOST = https://www.测试服.com/
IS_PRODUCATION = 生产环境 SERVER_HOST = https://www.线上服.com/
==============================================================
其他:
编译运行如果遇到报错提示:
error: unable to parse contents of file list '/Target Support Files/Pods-OCDevelopment/Pods-OCDevelopment-resources-Debug-input-files.xcfilelist'
那需要在第三步配置Debug.xcconfig和Release.xcconfig文件时,都加入一行特殊代码:
/// 项目名称换成自己的OCDevelopment要换
/// 如:#include "Pods/Target Support Files/Pods-OCDevelopment/Pods-OCDevelopment.debug.xcconfig"
#include "Pods/Target Support Files/Pods-项目名/Pods-项目名.debug.xcconfig"
/// 引入Generator.xcconfig文件
#include "Generator.xcconfig"
修改应用显示名称、包名
1、配置Debug.xcconfig和Release.xcconfig文件添加属性:
/// 显示名称
DISPLAY_NAME = OC开发版
/// 包名
BUNDLE_IDENTIFIER = com.company.dev
2、在工程文件Info.plist里面修改对应项:
image.png
3、完成——如果多次修改,请记得清除缓存才生效。
网友评论