其实这个问题大家都知道,但是一般都是清楚一些皮毛的东西,只能进行一些简单的应用。在这里详细说一下模式切换的使用。

Xcode给我们自带了两种编译模式Release 和 Debug,通常情况下我们可以利用这两种模式做很多事情,比如debug下打印输出日志release 下不打印,这是我们通常的操作:

一般Apple已经为我们设置好了 DEBUG 的宏定义,你可以在setting里查看:

我们可以直接使用比如:

#ifdef DEBUG
//do sth.
#else
//do sth.
#endif

  或者:

#if DEBUG
//do sth.
#else
//do sth.
#endif

这两种操作会呈现出相同的结果,因为DEBUG这个宏定义被定义并且为1,这里说一下#if和#ifdef。#if会去判断条件是否成立,er#ifdef只会去判断这个宏定义是否被定义,如果被定义不管值是什么都会继续向下执行

当然我们也可以在代码中定义一些变量,通过在不同环境下切换变量值来切换,比如:

static let isRelease = true
static let serverURL = isRelease ? "prd url" : "dev url"

这样我们可以通过修改isRelease的值来执行不同的serverURL !

这种方式在我们的代码中用的比较多,我们目前用的Objective-C,我们定义了一个类来管理这些宏定义,定义宏定义不同的值来决定代码内部编译的走向,其实也没有很麻烦,笔者倒是觉得很方便的。

另外的一种方式——使用xcconfig文件:

我们在原来的两个环境的基础上增加一个环境配置来区分另外的渠道:在run或者archive的时候选择相对应的模式去编译!

这里需要做的东西很多,因为你增加了一个模式,就要继续增加关于该模式的配置:

关于这部分的东西我找了一篇文章提供参考,就不赘述了:http://www.cocoachina.com/ios/20160815/17360.html

iOS 设置不同环境下的配置 Debug Release 生产 测试 等等的更多相关文章

  1. Xamarin Studio在Mac环境下的配置和Xamarin.iOS常用控件的示例

    看过好多帖子都是Win环境装XS,Mac只是个模拟器,讲解在Mac环境下如何配置Xamarin Studio很少,也是一点点找资料,东拼西凑才把Xamarin Studio装在Mac上跑起来,如下: ...

  2. 【云和恩墨】性能优化:Linux环境下合理配置大内存页(HugePage)

    原创 2016-09-12 熊军 [云和恩墨]性能优化:Linux环境下合理配置大内存页(HugePage)   熊军(老熊) 云和恩墨西区总经理 Oracle ACED,ACOUG核心会员 PC S ...

  3. Windows环境下Git配置及使用

    Windows环境下Git配置及使用 一.安装包位置 Git下载地址https://git-scm.com/download/win TortoiseGit下载地址https://tortoisegi ...

  4. win10环境下VS2019配置NTL库

    win10环境下VS2019配置NTL库 1.下载 WINNTL库文件     https://www.shoup.net/ntl/download.html 2.创建静态库 文件->新建-&g ...

  5. 百度在线编辑器UEditor(v1.3.6) .net环境下详细配置教程之更改图片和附件上传路径

    本文是接上一篇博客,如果有疑问请先阅读上一篇:百度在线编辑器UEditor(v1.3.6) .net环境下详细配置教程 默认UEditor上传图片的路径是,编辑器包目录里面的net目录下 下面就演示如 ...

  6. 详细的图文教程来实现 eclipse环境下如何配置tomcat,并且把项目部署到Tomcat服务器上

    很多初学,尤其自学JavaWeb的朋友首次在eclipse下配置tomcat时,总会有种难下手的感觉,在此,通过图文解说的方法,最直观的向大家演示一遍该配置过程. 第一部分:eclipse环境下如何配 ...

  7. eclipse环境下如何配置tomcat

    eclipse环境下如何配置tomcat 很多初学,尤其自学JavaWeb的朋友首次在eclipse下配置tomcat时,总会有种难下手的感觉,在此,通过图文解说的方法,最直观的向大家演示一遍该配置过 ...

  8. resin-pro-4.0.34 服務器在windows环境下的配置

    resin-pro-4.0.34 服務器在windows环境下的配置(轉載请注明作者:icelong) 到caucho網站上http://www.caucho.com/download/下載resin ...

  9. eclipse:eclipse for java EE环境下如何配置tomcat服务器,并让tomcat服务器显示在控制台上,将Web应用部署到tomcat中

    eclipse环境下如何配置tomcat 打开Eclipse,单击"Window"菜单,选择下方的"Preferences".  单击"Server& ...

随机推荐

  1. 在不安装oracle客户端的情况下,使用PLSQL

    一般在使用plsql时,会结合oracle客户端来使用,这样方便把数据库连接信息添加到plsql中.不过oracle客户端软件有点庞大,安装起来不太方便,所以在网上找到一种不依赖oracle客户端来使 ...

  2. Centos6.5 升级Openssl + Openssh

    xu言: 平时很懒,都不想写blog.今天(2018.05.15)开始尝试每天写一篇吧,看我自己能坚持多久! 准备工作: 为了防止在操作过程中导致ssh远程中断,首先安装一个telnet-server ...

  3. 4.2 面向对象分析(二) CRC方法标识概念类

    CRC  又称为CRC索引卡片:CRC card  每张卡片代表一个类 Each card represents one class  每张卡片上写出这个类承担的职责.与其合作交互的其他类名   ...

  4. 《完美应用ubuntu》之全面管理ubuntu软件源

    2.全面管理ubuntu软件包 2.1 DEB软件包之间的基本关系: (1)软件仓库:由ubuntu软件包的维护者维护并公开发布的DEB软件包的集合:可位于网络,服务器,硬盘等各种存储介质. (2)软 ...

  5. IntelliJ IDEA的调试方法

    快捷键F9          resume programe       恢复程序 Alt+F10       show execution point    显示执行断点 F8          S ...

  6. hdu5608杜教筛

    题意:给定函数\(f(x)\),有\(n^2-3*n+2=\sum_{d|n}f(d)\),求\(\sum_{i=1}^nf(i)\) 题解:很显然的杜教筛,假设\(g(n)=n^2-3*n+2\), ...

  7. 函数指针做函数参数,其中有typedef的相关,感觉这是构成大河的小溪

    #include<stdio.h> #include<stdlib.h> #include<string.h> int Funcadd(int a, int b) ...

  8. Leetcode 129

    /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode ...

  9. 【LeetCode】跳跃游戏

    给定一组非负整数,初始时处于数组的第一位下标 0 的位置,数组的每个元素代表那个位置可以跳跃的最大长度.判断你是否能够到达数组的最后一位下标. e.g. A = [2, 3, 1, 1, 4],返回 ...

  10. Nodejs+mysql+Express: 一个简单的博客

    推荐网址: https://github.com/nswbmw/N-blog/blob/backup/book/%E7%AC%AC1%E7%AB%A0%20%E4%B8%80%E4%B8%AA%E7% ...