iOS中 Debug 和 Release 的区别和使用权和经营权的区别

&>&iOS Debug和Release状态的变化来屏蔽日志输出
iOS Debug和Release状态的变化来屏蔽日志输出
上传大小:33KB
Debug和Release状态的变化来屏蔽日志输出
综合评分:5
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, data.com_username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click", '.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有2条
很实用的功能,开发完成后改release版不用一条一条删log了
不错,很有帮助,谢谢
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
iOS Debug和Release状态的变化来屏蔽日志输出
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
无法举报自己的资源
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
举报的资源分:
请选择类型
资源无法下载 ( 404页面、下载失败、资源本身问题)
资源无法使用 (文件损坏、内容缺失、题文不符)
侵犯版权资源 (侵犯公司或个人版权)
虚假资源 (恶意欺诈、刷分资源)
含色情、危害国家安全内容
含广告、木马病毒资源
*详细原因:
iOS Debug和Release状态的变化来屏蔽日志输出iOS开发:Release/Debug模式与Configuration
一、release与debug模式
Debug和Release仅仅是编译选项的不同,那么为什么要区分Debug和Release版本呢?
Debug和Release,主要是针对其面向的目标不同的而进行区分的。
Debug通常称为调试版本,通过一系列编译选项的配合,编译的结果通常包含调试信息,而且不做任何优化,为开发人员提供强大的应用程序调试能力。
而Release通常称为发布版本,是为用户使用的,一般客户不允许在发布版本上进行调试。所以不保存调试信息,同时,它往往进行了各种优化,以期达到代码最小和速度最优。为用户的使用提供便利。
我们说一下在xcode上怎么配置debug和release。
首先为了让debug和release的区别更加明显,我们会给各自一个option,这样我们可以保证在debug中输出的log,到了release就看不到了。
比如下图的-DMY_DEBUG
-DMY_RELEASE,到了代码里面如下实现
NSLog(@"debug version")
再次我们可以配置debug和release,那编译的时候怎么选择是用debug还是release,答案如下(通过product-》edit scheme调出)
二、Build Configuration
Xcode默认会有2个编译模式,一个是Debug,一个是Release。
Release下不能调试程序,编译时有做编译优化,会比用Debug打包出来的运行快,另外包也会更小。
我自己碰到的使用场景是,我司的域名有3套:
针对开发时的域名针对预上线时的域名针对上线时对外公开的域名这个时候,就会有多套域名,全部加起来可能有15个左右。每次打包时,就会特别混乱。(注释掉现在使用的域名,打开原本注释掉的那部分,出差错的可能蛮高的,而且不利于阅读)
这个时候,我们就使用它来针对3个环境下不同域名做配置。
配置Build Configuration
1. 添加Configuration
这里我们添加DEVELOP、BETA、保留原有的(release)。这里我们选择直接duplicatte Debug的配置,因为Release的不能做断点调试。
2. 查看Configuration
添加完第1步的Configuration之后,在Edit Scheme里就会看到新添加的配置项
3. 更改Preprocessor Macros
第1步里我们直接复制了Debug的配置项,那这里的值就会有问题,需要自己设置。
4. 在程序里配置对应的Configuration下不同域名
也可以这样使用
运行程序,修改Scheme下不同的Configuration,就能得到不同的值,那结果就是正确的了。
三、基于以上的实验,app还可以在不同环境下配置不同的AppIcon和AppName
使用Asset Catalog,分别给三种环境下配置3个名字
AppIconAppIconDEVELOPAppIconBETA然后去Target - Build Settings里搜索Asset Catalog App Icon Set Name这一项
Target - Build Settings里点+号,添加一个User-Defined Setting
比如我们请一个叫APP_DISPLAY_NAME的key值,下面BETA叫BETA,DEVELOP叫DEVELOP, Release还是用系统原配置。
进到Target - Info里,修改Bundle name为$(APP_DISPLAY_NAME)
这几天我们做了一件很蠢的事,把开发用的环境打包发给了Apple。
为了弥补这件事,顺便规范以后的打包问题,于是做了一些配置上的补救。
查了下Apple的文档,原来可以配置,我将Release环境以外的Skip Install配置成NO,就不会Archive出ipa了。
参考文章:
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!问题[○○○]:谈谈iOS开发中Debug和Release的区别和使用 - 简书
问题[○○○]:谈谈iOS开发中Debug和Release的区别和使用
在 iOS开发中,我们经常会调试程序和发布程序,但是有很多人对 Debug 和 Release 不是太了解.下面是我对 Debug 和 Release 的简单理解,希望对大家在开发中有所启迪:
Debug : 调试版本,主要是让程序员使用,在调试的过程中调用 Debug 会启动更多的服务来监控错误,运行速度相对较慢,而且比较耗能.
Release : 发布版本,主要是让用户使用, 在使用的过程中会去掉那些繁琐的监控服务,运行速度相对较快,而且比较节约内存.
在程序开发完成以后,建议在测试的时候 把 Debug 和 Release 两个版本都测试一下,在提测的时候以 Release 测试的情况为准. 因为 Release 状态下测试的情况,是用户使用的真是情景.
在程序调试的过程中, Xcode 默认的情况是 Debug ,如果想修改成 Release 情景下测试.
需要选择 Edit Scheme ---& info ---&Build Configuration 选择 Release 进行测试;
Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线)。分布式系统的协调导致了样板模式, 使用Spring Cloud开发人员可以快速地支持实现这些模式的服务和应用程序。他们将在任何分布式...
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金 相信有很多...
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金相信有很多朋友...
在 iOS开发中,我们经常会调试程序和发布程序,但是有很多人对 Debug 和 Release 不是太了解.下面是我对 Debug 和 Release 的简单理解,希望对大家在开发中有所启迪: Debug : 调试版本,主要是让程序员使用,在调试的过程中调用 Debug 会...
收集的库 git-recipesGit recipes in Chinese. 高质量的Git中文教程. lark怎样在Github上面贡献代码 my-git有关 git 的学习资料 gitignore非常赞 有用的.gitignore模板集合(忽略上传的文件集合),包含了...
前些时候,有件三个农民兄弟接力救助悬挂在三楼老人的事情受到很多人的关注。三兄弟也被授予模范人物荣誉称号。事情已过去很久,可这件事折射出来的一些话题却仍然值得我们玩味。 三兄弟面对不同媒体讲述的事件过程细节可能有些许不同,但都表达了一个基本意思,那就是看到老人悬挂在护栏上,情...
文\长安遥遥,写作者 四年前,在北院门,我遇见了一个老人。那天天很冷,就像现在,冰凌子在窗玻璃上错乱纵横。我们从街道两头慢慢向街中央的普泰茶楼走去。寂静的黄昏,人迹罕然,我们可以听见彼此沉重的呼吸声。在临窗的一张桌子前停下,四目相对。空气中响起了久违的噼啪声,那是店主的小儿...
兰州财经大学肇始于1952年成立的甘肃省人民政府行政干部学校;1958年,升格为甘肃财经学院,隶属甘肃省人民政府领导,实施本科教育;1981年,成立兰州商学院,先后隶属原国家商业部、国内贸易部领导;1998年,实行中央与地方共建、以甘肃为主的管理体制;2003年,增列为硕士...
今天泡了一杯桂花茶, 丹桂飘香的季节,给妈妈来一款美味清香的桂花糕吧~(文末附获奖人员) 瞬间弥漫了一股沁人的清香,思绪被这淡淡的桂花香牵引着,想起小时候大街小巷传来的桂花糕的味道,那时候经常拉着妈妈一起去买,这大概是我俩难得的共同爱好了,捧着软糯香甜的桂花糕回味在味蕾中,...iOS中 Debug 和 Release 的区别和使用_百度知道
iOS中 Debug 和 Release 的区别和使用
我有更好的答案
Release是发行版本,比Debug版本有一些优化,文件比Debug文件小;Debug是调试版本,Debug和Release调用两个不同的底层库。一、&Debug是调试版本,包括的程序信息&二、只有DEBUG版的程序才能设置断点、单步执行、使用TRACE/ASSERT等调试输出语句。三、REALEASE不包含任何调试信息,所以体积小、运行速度快。
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。IOS学习&Debug,distribution和release有什么区别?
菜鸟从android转学IOS,总习惯拿android的东西跟IOS做对比。
使用XCode经常会看到针对上述三种版本的各种配置项,但并不是很清楚。
这里总结下:
一般就是区分debug和release.
debug用来调试,一般会带调试信息,release去掉了调试信息,并且一般编译时经过了优化,用来发布给用户使用。
distribution,其实就是使用了企业证书的编译版本。虽然这不是特别要求非得如此,但是许多参与企业版证书发布的程序员都遵守了这么一个协议。
简单的说,debug就是开发环境调试用的,release是测试产品环境,distribution就是release更换了正式发布时候的证书签名。因为这个证书你没法在自己的设备上测试。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 必须和必需的使用区别 的文章

 

随机推荐