发布时去除NSLog打印 iOS

步骤比较简单,只需要 在.pch 中追加你对应的宏定义

#ifdef DEBUG
#define LOG(...) NSLog(__VA_ARGS__);
#define LOG_METHOD NSLog(@"%s", __func__);
#else
#define LOG(...); #define LOG_METHOD;
#endif

我们发布到appstore 上的版本均是release版本,这里简单说下这两个版本的差异。
release 是发行版本,比debug版本要小一些,他们调用两个不同底层库,debug 包含的信息多,可以断点调试,单步执行,使用使用TRACE/ASSERT等调试输出语句,但是release 版本不包含调试信息,运行速度比较快。

时间: 2024-12-12 00:54:44

发布时去除NSLog打印 iOS的相关文章

vs2010发布时去除msvcp100 dll和msvcr100 dll图解说明

最近开发个程序,Copy到虚拟机环境中测试时提示缺少msvcr100.dll,于是想到编译时设置选项去除依赖. 什么是 msvcr100.dll MS = Microsoft V = Visual C = C program language R = Run-time 100 = Version 什么是 msvcp100.dll MS = Microsoft V = Visual CP = C++ 100 = version 解决的办法 Release版本 Visual Studio 2010,

iOS开发 替换NSLog打印设置

在XCode做开发调试时往往需要打印一些调试信息做debug用,大家知道当打印信息的地方多了之后在模拟器上跑可能不会有什么问题,因为模拟器用的是电脑的硬件但是当应用跑在设备上时这些输出语句会在很大程度上影响应用的性能,针对这种问题可以写一些宏来控制这些调试信息的输出. 在release版本禁止输出NSLog内容 因为NSLog的输出还是比较消耗系统资源的,而且输出的数据也可能会暴露出App里的保密数据,所以发布正式版时需要把这些输出全部屏蔽掉. 我们可以在发布版本前先把所有NSLog语句注释掉,

iOS ---不一样的NSLog打印(定位打印)

在iOS开发过程中,调试是很重要的过程,而除了各种断点调试(普通断点.条件断点.全局断点)之外,似乎NSLog是我们调试最常用的方法,当然,也是最简单朴素的寻debug方法. 在项目中,我们常使用的NSLog的语句无外乎以下一种: NSLog(@"打印字符串:%@",name);   NSLog(@"打印整形:%i",number);//或者 %li ; %ld ; %d   NSLog(@"打印字符:%c",c);   NSLog(@"

iOS程序调试和发布时遇到的问题

最近接手一个项目,在用真机调试时出现了“Your build settings specify a provisioning profile with the UUID “”, however, no such provisioning profile was found”的出错.一直提示指定UUID的provisioning profile找不到,感觉很奇怪.明明自己的provisioning profile是刚下载好的,并且全是新安装.于是通过谷歌找到了答案. 参考地址:http://sta

NSLog打印信息的从新设置

前提:在XCode做开发调试时往往需要打印一些调试信息做debug用,大家知道当打印信息的地方多了之后在模拟器上跑可能不会有什么问题,因为模拟器用的是电脑的硬件但是当应用跑在设备上时这些输出语句会在很大程度上影响应用的性能,针对这种问题可以写一些宏来控制这些调试信息的输出. 在release版本禁止输出NSLog内容 因为NSLog的输出还是比较消耗系统资源的,而且输出的数据也可能会暴露出App里的保密数据,所以发布正式版时需要把这些输出全部屏蔽掉. 我们可以在发布版本前先把所有NSLog语句注

APP发布时一般使用的主题和去掉主题自带的点击颜色

APP发布时一般使用的主题: <application        android:allowBackup="true"        android:icon="@drawable/applogo"        android:theme="@android:style/Theme.Light.NoTitleBar" > 今天希望在girdview中选择后,改变背景图,默认选中有黄色背景 希望去除,在网上找到了解决方案 1 gr

在XML序列化时去除默认命名空间xmlns:xsd和xmlns:xsi

可使用以下代码: //Create our own namespaces for the output XmlSerializerNamespaces ns = new XmlSerializerNamespaces (); //Add an empty namespace and empty value ns.Add ("", ""); //Create the serializer XmlSerializer slz = new XmlSerializer (s

Windows下程序打包发布时的小技巧(使用Dependency Walker侦测不理想,改用VS自带的dumpbin则万无一失,还可查看dll导出的函数)

Windows下开发的应用程序在发布时,需要将其依赖的一些动态链接库一起打进安装包里面去.这个时候,快速确定这个程序到底依赖哪些动态链接库变得非常重要.很久以前写过一篇关于Qt程序安装包制作的博客,里面介绍了Dependency Walker这个小工具.但是实际操作起来并不理想,因为Dependency Walker将exe文件依赖的所有动态库以及动态库所依赖的动态库都列出来了.看得你一脸懵逼: 你很难分清楚:倒底哪些DLL是需要打包的,哪些DLL是系统自带的.而作为打包过程中的一个小步骤,我根

arcgis发布时 转成自己需要的坐标。

今天遇到的问题是数据是投影的wgs84,wkid为3785,但是需要转成地理的wgs84坐标系,wkid为4326.数据量挺大,改坐标系挺麻烦的.请教了大神,在发布服务时可以定义自己的坐标系,发布出来的服务就是自己想要的,并且对原始数据没有影响. 具体步骤如下: 选中视图->数据框属性 变换坐标系 选中自己需要的进行变换即可. 变换完之后可以发布服务,原始数据的坐标系未更改. [注意]有时候发布的分析时会提示,坐标系不一致.这个时候要仔细分析下错误,看看提示的是什么内容. 我发布时提示缓存中的切