前言

在配置宏定义参数时,会发现一个问题,在需要临时修改或者测试一些数据时,修改宏,如果不修改,就多写一个,注释掉原来的,然后测试后,再换回来,当然了,如果一两个宏,可以这样,但是,如果每次改的比较多,建议用环境变量来配置,也就是用 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环境变量那些事(配置环境的配置)的更多相关文章

  1. Linux编程 11(shell全局环境变量与局变环境变量)

    一.概述 在linux中,很多程序和脚本都通过环境变量来获取系统信息,存储临时数据,配置信息.环境变量是指用来存储有关shell会话和工作环境信息,允许你在内存中存储数据,以便程序或shell中运行的 ...

  2. JDK配置环境变量 (JDK安装成功后进行配置)

    "我的电脑" -- 右键"属性" --- "高级系统设置" --- “环境变量” 第一步:配置     JAVA_HOME 变量 找到 变量 ...

  3. classpath环境变量(JDK5.0之后不建议配置)

    classpath的作用: 作用是指定类搜索路径,要使用已经编写好的类,前提当然是能够找到它们了,一旦配置了classpath路径信息的时候,jvm与java编译器都会根据classpath指定的路径 ...

  4. ASP.NET CORE 2.0 发布到IIS,IIS如何设置环境变量来区分生产环境和测试环境

    0.前言 因为给前端的测试环境是windows,所以要设置windows上的环境变量,如果上Linux就没有这篇文章了,所以大家不要在意为什么core不放在linux上. 1.网上的解决方案 a 方式 ...

  5. linux centos中添加删除修改环境变量,设置java环境变量

    前言 安装完软件必要添加环境变量.指令很少,然而长时间不写就会不自信:我写的对吗?于是百度开始,于是发现又是各有千秋.好吧,好记星不如烂笔头.当然,最重要的是,百度出来的都他妈的是如何添加环境变量,只 ...

  6. java环境变量、集成开发环境与使用两个类

    1.集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器.编译器.调试器和图形用户界面等工具.集成了代码编 ...

  7. Java环境变量搭建(Linux环境)

    1. 下载解压JDK压缩包 例如:解压到 /opt/jdk1.7.0_80 下 2. 添加环境变量到 /etc/profile 文件中 vi /etc/profile 在文件末尾追加如下内容: exp ...

  8. 【转载】 CUDA_DEVICE_ORDER 环境变量说明 ( ---------- tensorflow环境下的应用 )

    原文地址: https://www.jianshu.com/p/d10bfee104cc ------------------------------------------------------- ...

  9. NX二次开发-相对路径环境变量和绝对路径环境变量

    相对路径环境变量:${UGII_BASE_DIR}\CaesarToolkits 绝对路径环境变量:D:\Program Files\Siemens\NX 9.0\CaesarToolkits

随机推荐

  1. IOS tableView的一些问题总结

      1.与用户的交互的开启和关闭 tableView.userInteractionEnabled = NO; 2.TableView的Group样式中,默认的每个section都有sectionHe ...

  2. vba中变量作用域

      参考:http://club.excelhome.net/thread-1237085-1-1.html 全局变量例子public 变量1 AS IntegerSub LLL()变量1 = 111 ...

  3. HDMI ip中的时钟 vid_clk与ls_clk

    由TMDS_Bit_clock_Ratio.TMDS_clk和色彩深度,就可以确定出tmds_clk,cdr_clk,vid_clk和ls_clk之间的关系. 1.Tmds_clk时钟频率的确定: 原 ...

  4. user表中存在多条相同user不同host用户信息时MySQL该匹配哪条记录登录?

    问题: 当用户名相同,但主机名不同的多条记录.用户由不同主机登录时,选择使用那条记录来验证,数据库版本为:5.6.25 如:IP为192.168.141.241 hostname为vhost02主机上 ...

  5. Android拖动和缩放

    拖拽和缩放 多点触控的理论学完了之后,这里开始实践.本节主要介绍使用onTouchEvent()方法处理触控事件. 拖动一个对象 如果你使用的是Android 3.0或者之后的系统,那么你可以使用内置 ...

  6. mapnik渲染原理

    https://bbs.csdn.net/topics/390853826

  7. git windows下载安装 (git命令)

    Set up git At the heart of GitHub is an open source version control system (VCS) called Git. Git is ...

  8. spring mvc使用ModelAndView时发生No request handling method with name '方法 名' in class [类名]的错误

    我日,下午关于标题错误查了好久,网上啥说法都有, 后来发现是ModelAndView的路径引错了 正确路径应该为: import org.springframework.web.servlet.Mod ...

  9. hihocoder#1631 : Cats and Fish

    Description There are many homeless cats in PKU campus. They are all happy because the students in t ...

  10. 2017-2018-1 201552326《信息安全技术》实验二——Windows口令破解

    2017-2018-1 201552326<信息安全技术>实验二--Windows口令破解 姓名:刘美岑 学号:20155326 班级:1553班 日期:10.24 一.实验环境 操作系统 ...