便于开发、打包中在不同环境(测试、生产)间属性的切换更加方便便捷流畅,故创建设置此方式方法,希望对大家能有所帮助.

首先,创建 Configurations Setting File(.xcconfig) 配置文件,文件命名可以大家自行定义,具体步骤如下图所示:

1)首先,选择 Configurations Setting File 文件

2)其次,文件命名并勾选 Targets 项目选项

3)最后,创建文件后的效果

其次,将创建好的文件与项目相配置关联.在项目工程的 PROJECT => info => Configurations 层级下分别在 Debug 和 Release 模式下配置关联之前创建的 .xcconfig 文件,具体如下图所示:

将 .xcconfig 文件与项目相关联设置

再其次,创建并配置好如上几个步骤后,来到 .xcconfig 文件中进行一些公共属性的配置,例如 URL 链接地址、测试或生产环境下不同的 key 相关.

注:在 "//" 之间使用 "$()" 来转义,例如 https:/$()/

Debug.xcconfig 配置文件

#include "YHCommon.xcconfig"
// 测试环境
YH_IS_PRODUCATION = NO
// URL
YHURL_Host = @"https:/$()/test.com/api/"
YHURL_Index = @""
YHURL_Second = @""
YHURL_Third = @""
YHURL_Four = @""
YHURL_Fifth = @""

Release.xcconfig 配置文件

#include "YHCommon.xcconfig"
// 测试环境
YH_IS_PRODUCATION = YES
// URL
YHURL_Host = @"https:/$()/app.com/api/"
YHURL_Index = @"Release1"
YHURL_Second = @"Release2"
YHURL_Third = @"Release3"
YHURL_Four = @"Release4"
YHURL_Fifth = @"Release5"

Common.xcconfig 配置文件

// https://help.apple.com/xcode/#/dev745c5c974
// 注: GCC_PREPROCESSOR_DEFINITIONS = $(inherited) 该语句后面的参数与 Debug.xcconfig 和 Release.xcconfig 中的参数字段名称一致
// 即: GCC_PREPROCESSOR_DEFINITIONS = $(inherited) Key1='$(Key1)' Key2='$(Key2)' 以此类推 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) YHURL_Host='$(YHURL_Host)' YHURL_Index='$(YHURL_Index)' YHURL_Second='$(YHURL_Second)' YHURL_Third='$(YHURL_Third)' YHURL_Four='$(YHURL_Four)' YHURL_Fifth='$(YHURL_Fifth)' YH_IS_PRODUCATION='$(YH_IS_PRODUCATION)'

注意事项:
1)配置两个 key 字段间通过空格符相隔开,例如:

// YHURL_Host='$(YHURL_Host)'空格YHURL_Index='$(YHURL_Index)'
YHURL_Host='$(YHURL_Host)' YHURL_Index='$(YHURL_Index)'

2)保持宏与 key 字段的一致性

// Key 的一致性,例如: Key ='$(Key)'
YHURL_Index='$(YHURL_Index)'

3)Common.xconfig 配置文件中必须有 "GCC_PREPROCESSOR_DEFINITIONS = $(inherited)"

4)在基础语句(GCC_PREPROCESSOR_DEFINITIONS = $(inherited))后面不要回车,而是要通过空格符衔接,不然编译时会抛异常,有点难为强迫症哈哈.

再其次,检查如上操作是否配置成功,在 TARGETS => Build Settings => preprocessor macr 下查看 key 所对应的 value 中是否有参数,具体如下图所示:

最后,如上配置打工搞定后便可以在需要的地方开始方便的使用它们了.

1)测试结果 Debug

2)测试结果 Release

Debug 和 Release 切换方式

一、选择项目工程,其次选择 Edit Scheme.

二、在弹框中选择 Run => Info => Build Configuration 选择中进行 Debug 和 Release 的切换

以上便是此次分享的全部内容,希望对大家能有所帮助!

环境配置之 Debug 和 Release - iOS的更多相关文章

  1. ASP.NET和ASP.NETCore多环境配置对比

    前言 多环境配置应该都很熟悉了,最为常见的便是Debug和Release,例如下图是新建的一个asp.net项目,配置文件展开共有三个文件组成 据我所知,大多公司从来没编辑过Web.Debug.con ...

  2. 【VS开发】MFC运行时库与debug、release版本之间的配置关系

    参考内容: 前段时间从网上下来一个有意思的代码,用VS2010打开时需要将工程转换为2010的工程,转化后却出现了编译不通过的问题,类似这样的错误:c:\program files\microsoft ...

  3. Android Studio 多个编译环境配置 多渠道打包 APK输出配置

    看完这篇你学到什么: 熟悉gradle的构建配置 熟悉代码构建环境的目录结构,你知道的不仅仅是只有src/main 开发.生成环境等等环境可以任意切换打包 多渠道打包 APK输出文件配置 需求 一般我 ...

  4. VS系列软件中debug和release编译环境有什么区别

    当编译和执行一个工程时,可以在Debug和Release两种配置下执行. Debug模式用于调试程序,这是个受保护的运行环境,它将告诉你程序是否有泄露,在运行时也能对特定函数的结果进行检查.然而它生成 ...

  5. Mac电脑配置IOS React Native开发环境配置笔记

    React Native(以下简称RN)的开发环境配置直接参考官方文档即可完成,不过对小白来说东西有点多,有些名词不是很好理解,这里就官方的安装文档稍微展开说一下. 中文版配置说明:不错的中文说明.官 ...

  6. XE4 IOS开发环境配置

    l 配置IOS的安装开发环境 使用RAD XE4开发IOS程序,一台MAC是必须的(也可以用虚拟机), MAC上需要安装Xcode, 独立版本的Commnand Line Tools 以及RAD的pa ...

  7. ios开发环境配置及cordova安装与常用命令

    一.ios开发环境配置 1.首先要有台Mac Book,如果有Mac Book,跳过步骤2.3.4,如果没有,执行步骤2.3.4: 2.下载并安装VMware Workstation,最好是下最新版本 ...

  8. IOS百度地图之--->第一篇《环境配置与基本使用》

    Ios 百度地图SDK简易使用说明:http://developer.baidu.com/map/index.php?title=iossdk 先道歉:对于原来上传的Demo我很抱歉,什么都没有,也没 ...

  9. iOS XMPPFramework 环境配置

    iOS XMPPFramework 环境配置 1:下载 iOS XMPPFramework https://github.com/robbiehanson/XMPPFramework 2:下载解压zi ...

随机推荐

  1. 记录开发Nodejs c++ addon的一些经验(四、electron)

    如果我们要在electron里使用我们开发的addon,那么直接使用是不行的. 官方的解释是:Electron 同样也支持原生模块,但由于和官方的 Node 相比使用了不同的 V8 引擎,如果你想编译 ...

  2. C语言——顺序表插入、删除、定位运算算法

    说明:将元素x插入到顺序表L的第i个数据元素之前,这个i是从1开始的,但是程序中数组都是从0算起的,不要混淆了. 头文件: header.h // 顺序表的结构定义 #define Maxsize 1 ...

  3. MySQL数据库(4)----生成统计信息

    MySQL最有用的一项功能就是,能够对大量原始数据进行归纳统计. 1.在一组值里把各个唯一的值找出来,这是一项典型的统计工作,可以使用DISTINCT 关键字清楚查询结果里重复出现的行.例如,下面的查 ...

  4. 05_zookeeper的ACL

    [ACL概述] ACL:access control Lists,权限控制. * 针对节点可以设置相关的读写等权限,目的是为了保障数据安全性. * 权限permissions可以指定不同的权限范围以及 ...

  5. 常量、变量、数据类型 搞错N+1次 累死

    public class hello { /** * * * * * @param args */ public static void main(String[] args) { String _$ ...

  6. 理解LSTM/RNN中的Attention机制

    转自:http://www.jeyzhang.com/understand-attention-in-rnn.html,感谢分享! 导读 目前采用编码器-解码器 (Encode-Decode) 结构的 ...

  7. spring----面试题

    1.什么是Spring beans? Spring beans 是那些形成Spring应用的主干的java对象.它们被Spring IOC容器初始化,装配,和管理.这些beans通过容器中配置的元数据 ...

  8. css属性值语法解读

    //margin 形式语法: [ <length> | <percentage> | auto ]{1,4} //合法实例: margin: style /*单值语法 */ 举 ...

  9. 爬虫入门之Scrapy框架实战(新浪百科豆瓣)(十二)

    一 新浪新闻爬取 1 爬取新浪新闻(全站爬取) 项目搭建与开启 scrapy startproject sina cd sina scrapy genspider mysina http://roll ...

  10. 【Leetcode】【Medium】Linked List Cycle

    Given a linked list, determine if it has a cycle in it. 解题: 判断单链表是否具有环,使用两个指针once和twice遍历链表,once一次走一 ...