iOS-xcconfig环境变量那些事(配置环境的配置)
前言
在配置宏定义参数时,会发现一个问题,在需要临时修改或者测试一些数据时,修改宏,如果不修改,就多写一个,注释掉原来的,然后测试后,再换回来,当然了,如果一两个宏,可以这样,但是,如果每次改的比较多,建议用环境变量来配置,也就是用 xcconfig 控制 Debug 或 Release编译时,同一个宏名,取到的值就会不同;或许现在的PCH文件里面是下面这样的......
#define API_URL @"http://www.api000.com/"
//#define API_URL @"http://1.1.1.12:00000/"
xcconfig
可以用环境变量来配置,使API_URL的值在Debug和Release不同的环境下,各取所需。
1.新建 xcconfig 文件
注意在新建 xcconfig 文件时,勾选加入target。



2.设置宏
在上一步中,新建了三个 xcconfig 文件,Commonxcconfig.xcconfig 放公共宏或做公共设置,Debugxcconfig.xcconfig做Debug环境,Releasexcconfig.xcconfig做Release环境,然后添加API_URL宏并配置。
Debugxcconfig.xcconfig

Releasexcconfig.xcconfig

Commonxcconfig.xcconfig

在 Debugxcconfig.xcconfig 和 Releasexcconfig.xcconfig 中分别引用了:
Pods/Target Support Files/Pods-TestApp/Pods-TestApp.debug.xcconfig
Pods/Target Support Files/Pods-TestApp/Pods-TestApp.release.xcconfig
这是Debug和Release环境下默认的配置文件,在我们自定义的配置文件中,引用相对应的默认配置。
Commonxcconfig.xconfig中第一个key是GCC_PREPROCESSOR_DEFINITIONS = $(inherited) 后面跟自定义的key,在第一个key后面跟上自己定义的key的时候一定不要回车换行,敲一个空格,然后在同一行后面追加就行了,换行会编译错误, 不能换行。
3.配置环境


这样就可以用 xcconfig,定义在编译环境下的宏,如果上一步中 Pods/Target Support Files/Pods-TestApp/Pods-TestApp.debug.xcconfig 和 Pods/Target Support Files/Pods-TestApp/Pods-TestApp.release.xcconfig 路径不确定,终端进入项目文件夹,pod install ,终端会有提示路径,将该路径复制后引用就可以。



配置自定义编译环境



iOS-xcconfig环境变量那些事(配置环境的配置)的更多相关文章
- Linux编程 11(shell全局环境变量与局变环境变量)
一.概述 在linux中,很多程序和脚本都通过环境变量来获取系统信息,存储临时数据,配置信息.环境变量是指用来存储有关shell会话和工作环境信息,允许你在内存中存储数据,以便程序或shell中运行的 ...
- JDK配置环境变量 (JDK安装成功后进行配置)
"我的电脑" -- 右键"属性" --- "高级系统设置" --- “环境变量” 第一步:配置 JAVA_HOME 变量 找到 变量 ...
- classpath环境变量(JDK5.0之后不建议配置)
classpath的作用: 作用是指定类搜索路径,要使用已经编写好的类,前提当然是能够找到它们了,一旦配置了classpath路径信息的时候,jvm与java编译器都会根据classpath指定的路径 ...
- ASP.NET CORE 2.0 发布到IIS,IIS如何设置环境变量来区分生产环境和测试环境
0.前言 因为给前端的测试环境是windows,所以要设置windows上的环境变量,如果上Linux就没有这篇文章了,所以大家不要在意为什么core不放在linux上. 1.网上的解决方案 a 方式 ...
- linux centos中添加删除修改环境变量,设置java环境变量
前言 安装完软件必要添加环境变量.指令很少,然而长时间不写就会不自信:我写的对吗?于是百度开始,于是发现又是各有千秋.好吧,好记星不如烂笔头.当然,最重要的是,百度出来的都他妈的是如何添加环境变量,只 ...
- java环境变量、集成开发环境与使用两个类
1.集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器.编译器.调试器和图形用户界面等工具.集成了代码编 ...
- Java环境变量搭建(Linux环境)
1. 下载解压JDK压缩包 例如:解压到 /opt/jdk1.7.0_80 下 2. 添加环境变量到 /etc/profile 文件中 vi /etc/profile 在文件末尾追加如下内容: exp ...
- 【转载】 CUDA_DEVICE_ORDER 环境变量说明 ( ---------- tensorflow环境下的应用 )
原文地址: https://www.jianshu.com/p/d10bfee104cc ------------------------------------------------------- ...
- NX二次开发-相对路径环境变量和绝对路径环境变量
相对路径环境变量:${UGII_BASE_DIR}\CaesarToolkits 绝对路径环境变量:D:\Program Files\Siemens\NX 9.0\CaesarToolkits
随机推荐
- IOS 单击手势和cell点击冲突
环境: view上添加tableView,给view添加单击手势,点击cell却走的是手势方法. 解决: UITapGestureRecognizer *tap=[[UITapGestureRecog ...
- jQuery 常用效果
hide和show 同样有 fadeInhe fadeOut 的功能 $(document).ready(function(){ $("#hide").click(function ...
- C++STL stack
stack栈 先进后出 stack<int> s ; s.push();//元素入栈 //出栈 while(!s.empty()){ int tmp = s.top(); s.pop(); ...
- Java获取文件后缀名
int dot = filename.lastIndexOf('.'); if ((dot > -1) && (dot < (licenceImg.getOriginalF ...
- vs2013查看代码性能后删除保存的性能查看文件导致再打开提示未找到与约束匹配的导出
1.关闭VS: 2.删除C:/Users//AppData/Local/Microsoft/VisualStudio/12.0/ComponentModelCache文件夹下所有文件及文件夹: 3.重 ...
- 分区表主键不包含分区键报错ERROR 1105 (HY000)
ERROR 1105 (HY000): A PRIMARY KEY must include all columns in the table's partitioning function MySQ ...
- android-基础编程-Dialog
Dialog是一种常见的控件. 设置对话框一般步骤如下: 1.实例化dialog 由于AlertDialog的构造函数的关系,不能直接实例化,需要利用Builder来实例化,如 AlertDialog ...
- 20155326刘美岑2016-2017-2《Java程序设计》第一周学习总结
20155326刘美岑 2006-2007-2 <Java程序设计>第1周学习总结 教材学习内容总结 在老师的要求下我看了这门课的考察方式.这门课和以前上的课有些差别,成绩是由平时一点一点 ...
- java基础-day29
第06天 MySQL数据库 今日内容介绍 u MySQL单表查询 u SQL约束 u 多表操作 第1章 MySQL单表查询 1.1 SQL单表查询--排序 1.1.1 排序格式 通过order ...
- cmd如何进入d盘
首先打开CMD 点开始 运行输入 CMD 在CMD窗口中输入 CD\(就是返回根目录) 回车 在输入 D: 即可在D盘操作状态