iOS开发-Xcode Debug、Release、Archive、Profile、Analyze概念解释

翻译 2015年07月10日 12:48:55

1,Debug和Release版本区别?

众所周知,我们进行iOS开发,在Xcode调试程序时,分为两种方式,DebugRelease,在Target的Setting中相信大家应该看到很多选项都分为DebugRelease,方便我们分别设置,满足调试和发布的不同需求。

Release是发行版本,比Debug版本有一些优化,文件比Debug文件小 Debug是调试版本,Debug和Release调用两个不同的底层库。通俗点讲,我们开发者自己内部真机或模拟器调试时,使用Debug模式就好,等到想要发布时,也就是说需要大众客户使用时,需要build Release版本,具体区别如下:

一、Debug是调试版本,包括的程序信息更多
二、只有Debug版的程序才能设置断点、单步执行、使用TRACE/ASSERT等调试输出语句
三、Release不包含任何调试信息,所以体积小、运行速度快


那么,问题来了,我们调试程序时,该如何生成(Build)或运行Debug或是Release版本呢?

Xcode左上角,点中项目名称-Edit Scheme,或是菜单栏-Product-Scheme-Edit Scheme 弹出界面如下:


当你这里设置Debug时,你build/Run后就是debug版本,相应的,修改成Release模式,出来的就是release版本,这里可以很方便切换。


2,Analyze的作用?

刚开发时,始终不知道这个的作用,只知道要打包生成APP时,需要用这个,那么到底Analyze和Release有什么关系呢?


archive是你要上传包的时候,打包。也就是说Archive只跟APP要上传到appStore的时候有关,一般情况下,只有在那个时候才会用Archive,可以这么理解。所以Archive也分为Debug和Release两个,你可以Archive出一个Debug版本的应用也可以Archive出一个Release的应用。


所以说,Archive和Release没有太大的关系,Archive我们平时一般都不会用到的。


3,Profile


点击运行Profile,profile 之后,会有一个工具选项. 然后你可以查看app 性能


4,Analyze

analyze,是查找静态内存泄漏,以前mrc 的时候会用。Profile和Analyze都可以在Scheme中设置:


【后续补充】




总结:

默认run,是debug模式,就是真机联调.
如果你修改为release,是run 的时候, 为发布模式.
直接archive 是系统提供帮助打包的,Archive生成后的文件会小很多~

iOS开发技巧(使用Xcode DEBUG模式和RELEASE模式)

在开发过程中,我们经常需要用到NSLog输出一些信息,甚至有的开发过程,必须在控制台查看输出,有经验的程序员通过控制台输出就能知道整个数据交互的一个流程。但是一个发布的程序,里面带有太多的NSLog输...
  • haiooh
  • haiooh
  • 2016年05月09日 10:41
  • 5937

使用Xcode-debug模式和release模式

在开发过程中,我们经常需要用到NSLog输出一些信息,甚至有的开发过程,必须在控制台查看输出,有经验的程序员通过控制台输出就能知道整个数据交互的一个流程。但是一个发布的程序,里面带有太多的NSLog输...
  • Jerome_XX
  • Jerome_XX
  • 2015年03月19日 00:23
  • 7927

iOS开发 Xcode使用Analyze静态分析

一.Analyze简介: 我们可以使用Xcode自带的静态分析工具 Product->Analyze(快捷键command+shift+B)可以找出代码潜在错误,如内存泄露,未使用函数和变量,循环引...
  • wgl_happy
  • wgl_happy
  • 2017年05月11日 18:05
  • 632

用Xcode Analyze进行代码静态检查以及一些常见问题释疑

Xcode是一个非常强大的IDE,最近使用Xcode Analyze对代码进行代码静态检查,尝到了不少甜头。 在Xcode中提供了两种工具帮助查找泄漏点:Analyze和Profile,Ana...
  • wsh7365062
  • wsh7365062
  • 2016年04月14日 16:44
  • 3802

ios应用:release与debug编译方式的区别

以下是Debug 和 Release很难看出的问题 笔者亲身经历 因为Debug和Release和内存分配和释放方式是不同的,Debug模式下内存会延迟释放,weak的对象会延迟,但Release...
  • chengkaizone
  • chengkaizone
  • 2015年11月30日 18:29
  • 2714

iOS开发——Xcode Analyze静态分析

Xcode Analyze  代码静态分析主要有以下作用:           内存泄漏(未释放的占内存的无用僵尸对象)       代码逻辑问题 (访问空指针或未初始化的变量等) ...
  • IT_liuchengli
  • IT_liuchengli
  • 2016年10月27日 18:00
  • 672

xcode release 和 debug 模式造成的不同

============================================================ 博文原创,转载请声明出处 电子咖啡(原id蓝岩) ===========...
  • sadlike
  • sadlike
  • 2013年11月21日 09:43
  • 1154

iOS开发必备--环境变量配置(Debug & Release)

http://www.cocoachina.com/ios/20151023/13869.html 本篇文章主要讲述了如何使用(Xcode配置文件xcconfig)去动态配置开发或者生产网络环境,...
  • chun799
  • chun799
  • 2015年10月25日 22:14
  • 3745

【iOS开发-115】静态库的制作以及第三方框架iOS Universal Framework,DEBUG和RELEASE

静态库的样子就是用户拿到的文件有很多头文件.h+资源包+编译过的一个二进制文件.a(.framework)。即没有公开的那些文件都被编译进了.a或.framework里面。如果是为了保护知识产权什么的...
  • wsb200514
  • wsb200514
  • 2015年01月29日 16:20
  • 2946

Xcode release与debug编译方式的区别

Debug和Release仅仅是编译选项的不同,那么为什么要区分Debug和Release版本呢? Debug和Release,主要是针对其面向的目标不同的而进行区分的。 Debug通常称为调试版...
  • xy_26207005
  • xy_26207005
  • 2016年03月27日 08:44
  • 1558
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS开发-Xcode Debug、Release、Archive、Profile、Analyze概念解释
举报原因:
原因补充:

(最多只允许输入30个字)