iOS 设置不同环境下的配置 Debug Release 生产 测试 等等
其实这个问题大家都知道,但是一般都是清楚一些皮毛的东西,只能进行一些简单的应用。在这里详细说一下模式切换的使用。
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 生产 测试 等等的更多相关文章
- Xamarin Studio在Mac环境下的配置和Xamarin.iOS常用控件的示例
看过好多帖子都是Win环境装XS,Mac只是个模拟器,讲解在Mac环境下如何配置Xamarin Studio很少,也是一点点找资料,东拼西凑才把Xamarin Studio装在Mac上跑起来,如下: ...
- 【云和恩墨】性能优化:Linux环境下合理配置大内存页(HugePage)
原创 2016-09-12 熊军 [云和恩墨]性能优化:Linux环境下合理配置大内存页(HugePage) 熊军(老熊) 云和恩墨西区总经理 Oracle ACED,ACOUG核心会员 PC S ...
- Windows环境下Git配置及使用
Windows环境下Git配置及使用 一.安装包位置 Git下载地址https://git-scm.com/download/win TortoiseGit下载地址https://tortoisegi ...
- win10环境下VS2019配置NTL库
win10环境下VS2019配置NTL库 1.下载 WINNTL库文件 https://www.shoup.net/ntl/download.html 2.创建静态库 文件->新建-&g ...
- 百度在线编辑器UEditor(v1.3.6) .net环境下详细配置教程之更改图片和附件上传路径
本文是接上一篇博客,如果有疑问请先阅读上一篇:百度在线编辑器UEditor(v1.3.6) .net环境下详细配置教程 默认UEditor上传图片的路径是,编辑器包目录里面的net目录下 下面就演示如 ...
- 详细的图文教程来实现 eclipse环境下如何配置tomcat,并且把项目部署到Tomcat服务器上
很多初学,尤其自学JavaWeb的朋友首次在eclipse下配置tomcat时,总会有种难下手的感觉,在此,通过图文解说的方法,最直观的向大家演示一遍该配置过程. 第一部分:eclipse环境下如何配 ...
- eclipse环境下如何配置tomcat
eclipse环境下如何配置tomcat 很多初学,尤其自学JavaWeb的朋友首次在eclipse下配置tomcat时,总会有种难下手的感觉,在此,通过图文解说的方法,最直观的向大家演示一遍该配置过 ...
- resin-pro-4.0.34 服務器在windows环境下的配置
resin-pro-4.0.34 服務器在windows环境下的配置(轉載请注明作者:icelong) 到caucho網站上http://www.caucho.com/download/下載resin ...
- eclipse:eclipse for java EE环境下如何配置tomcat服务器,并让tomcat服务器显示在控制台上,将Web应用部署到tomcat中
eclipse环境下如何配置tomcat 打开Eclipse,单击"Window"菜单,选择下方的"Preferences". 单击"Server& ...
随机推荐
- 下一个更大的数 Next Greater Element
2018-09-24 21:52:38 一.Next Greater Element I 问题描述: 问题求解: 本题只需要将nums2中元素的下一个更大的数通过map保存下来,然后再遍历一遍nums ...
- iTunes , iCloud 用吐了也没把照片给备份好
下载了iTools ,轻松就倒出来了. Apple这是怎么了,还能不能正常用了? 以前iCloud出来以前,[同步]这个功能,理解起来虽然费劲,还算是能用的. 这回直接就没法倒出照片了?
- 雷林鹏分享:XML DOM
XML DOM DOM(Document Object Model 文档对象模型)定义了访问和操作文档的标准方法. XML DOM XML DOM(XML Document Object Model) ...
- liunx进程管理之进程介绍
关于进程 process ====================================================================================Wha ...
- 树分治TLE原因
1.树分治有logn层,如果各层都进行一次memset相当于大小没变,可能TLE: 2.根节点全局变量会变,需要用局部变量记录,还有子树大小. 3.找根的时候的size是当前size,而不是输入数据中 ...
- mat 使用 分析 oom 使用 Eclipse Memory Analyzer 进行堆转储文件分析
概述 对于大型 JAVA 应用程序来说,再精细的测试也难以堵住所有的漏洞,即便我们在测试阶段进行了大量卓有成效的工作,很多问题还是会在生产环境下暴露出来,并且很难在测试环境中进行重现.JVM 能够记录 ...
- Hadoop-2.3.0的Eclipse插件编译
Hadoop-2.3.0的Eclipse插件编译 #cd /usr/local/src/hadoop2x-eclipse-plugin-master/src/contrib/eclipse-plugi ...
- java 循环读取文件夹里面的文件
public ArrayList<String> list = new ArrayList<String>(0);//用arraylist保存扫描到的路径public void ...
- 小程序动态添加class及调接口传递多个参数
1.动态添加class <view class="step2 {{indication == 2 ?'on':''}}"> <view class='tc lef ...
- DedecmsV5.7本地上传缩略图无法自动添加水印的解决方法
问题:dedecms后台 系统->图片水印设置 图片水印设置有开启了,但是本地上传缩略图无法自动添加水印 网上有很多资料,所以记录一下 1.打开dede(实际项目后台文件夹)/archives_ ...