iOS中-Xcode Debug、Release、Archive、Profile、Analyze的概念和区别

2024-06-04 06:58

本文主要是介绍iOS中-Xcode Debug、Release、Archive、Profile、Analyze的概念和区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转自http://blog.csdn.net/mad1989/article/details/40658033

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生成后的文件会小很多~

下面给出一个传送门,我最近在做的静态库开发,里面说的还算详细。

http://blog.sina.com.cn/s/blog_7b9d64af0101jlym.html iOS生成静态库方法-iOS集成静态库-iOS合并静态库

这篇关于iOS中-Xcode Debug、Release、Archive、Profile、Analyze的概念和区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1029375

相关文章

解读Pandas和Polars的区别及说明

《解读Pandas和Polars的区别及说明》Pandas和Polars是Python中用于数据处理的两个库,Pandas适用于中小规模数据的快速原型开发和复杂数据操作,而Polars则专注于高效数据... 目录Pandas vs Polars 对比表使用场景对比Pandas 的使用场景Polars 的使用

Java中ArrayList和LinkedList有什么区别举例详解

《Java中ArrayList和LinkedList有什么区别举例详解》:本文主要介绍Java中ArrayList和LinkedList区别的相关资料,包括数据结构特性、核心操作性能、内存与GC影... 目录一、底层数据结构二、核心操作性能对比三、内存与 GC 影响四、扩容机制五、线程安全与并发方案六、工程

Goland debug失效详细解决步骤(合集)

《Golanddebug失效详细解决步骤(合集)》今天用Goland开发时,打断点,以debug方式运行,发现程序并没有断住,程序跳过了断点,直接运行结束,网上搜寻了大量文章,最后得以解决,特此在这... 目录Bug:Goland debug失效详细解决步骤【合集】情况一:Go或Goland架构不对情况二:

java中不同版本JSONObject区别小结

《java中不同版本JSONObject区别小结》本文主要介绍了java中不同版本JSONObject区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录1. FastjsON2. Jackson3. Gson4. org.json6. 总结在Jav

数据库使用之union、union all、各种join的用法区别解析

《数据库使用之union、unionall、各种join的用法区别解析》:本文主要介绍SQL中的Union和UnionAll的区别,包括去重与否以及使用时的注意事项,还详细解释了Join关键字,... 目录一、Union 和Union All1、区别:2、注意点:3、具体举例二、Join关键字的区别&php

java中的HashSet与 == 和 equals的区别示例解析

《java中的HashSet与==和equals的区别示例解析》HashSet是Java中基于哈希表实现的集合类,特点包括:元素唯一、无序和可包含null,本文给大家介绍java中的HashSe... 目录什么是HashSetHashSet 的主要特点是HashSet 的常用方法hasSet存储为啥是无序的

2.1/5.1和7.1声道系统有什么区别? 音频声道的专业知识科普

《2.1/5.1和7.1声道系统有什么区别?音频声道的专业知识科普》当设置环绕声系统时,会遇到2.1、5.1、7.1、7.1.2、9.1等数字,当一遍又一遍地看到它们时,可能想知道它们是什... 想要把智能电视自带的音响升级成专业级的家庭影院系统吗?那么你将面临一个重要的选择——使用 2.1、5.1 还是

Python中@classmethod和@staticmethod的区别

《Python中@classmethod和@staticmethod的区别》本文主要介绍了Python中@classmethod和@staticmethod的区别,文中通过示例代码介绍的非常详细,对大... 目录1.@classmethod2.@staticmethod3.例子1.@classmethod

Golan中 new() 、 make() 和简短声明符的区别和使用

《Golan中new()、make()和简短声明符的区别和使用》Go语言中的new()、make()和简短声明符的区别和使用,new()用于分配内存并返回指针,make()用于初始化切片、映射... 详细介绍golang的new() 、 make() 和简短声明符的区别和使用。文章目录 `new()`

Python中json文件和jsonl文件的区别小结

《Python中json文件和jsonl文件的区别小结》本文主要介绍了JSON和JSONL两种文件格式的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下... 众所周知,jsON 文件是使用php JSON(JavaScripythonpt Object No