自定义 NSLog以便发版和调试】的更多相关文章

问题 开发中用了大量的 NSLog,但是发布时想取消这些 NSLog 开发中是否经常用过 NSLog(@"%s", __FUNCTION__); 解决问题 新建 ExtendNSLog 类,继承自 NSObject 在 ExtendNSLog.h 中删除默认代码 添加以下函数声明: void ExtendNSLog(const char *file, int lineNumber, const char *functionName, NSString *format, ...); 在 …
我们在调试程序的时候,往往需要输出一些日志信息,用到NSLog函数,当我们准备发布程序,需要注释掉NSLog代码,这个时候往往会定义一个宏,在调试的时候,会输出日志,在Release正式版本的时候,会关闭日志输出.代码如下: #ifdef DEBUG #define CLog(format, ...) NSLog(format, ## __VA_ARGS__) #else #define CLog(format, ...) #endif 上面这段代码,是最常见的自定义NSLog的方式,但是上面的…
之前在公司机房部署了一套jenkins环境,现需要迁移至IDC机房服务器上,迁移过程中记录了一些细节:1)jenkins默认的主目录放在当前用户家目录路径下的.jenkins目录中.如jenkins使用root用户启动,则主目录为/root/.jenkins [root@code-server ~]# ll -d /root/.jenkins/ drwxr-x--- 14 root root 4096 Dec 18 15:22 /root/.jenkins/ 2)可以在系统环境变量里手动设置je…
Android加固包签名 我们知道自己的apk在上传市场的时候, 为了更好的包含我们的代码需要加固服务, 加固后的apk是不能直接安装的, 需要我们手动签名. 关于Android签名的知识就不在赘述了,网上有很多相关内容. Android应用数字签名详解 重点我们需要知道: android的签名不是 google自定义的, 它是一个通用校验算法, 通用与java 应用程序发版中. Android的签名只是在该算法基础上提供了自己的工具; 我们可以使用android studio 方便的完成对ap…
问题背景 大一点的公司都会建立一套规章流程来避免低级错误,例如合入代码前必需经过同行评审:上线前必需提测且通过 QA 验证:全量前必需经过 1%.5%.10%.20%.50% 的灰度过程.尤其是最后一步,需要严密的监控发版指标来保证新版本的质量,如果与主力版本的指标相比有异常变动,就需要及时停止放量并分析原因. 一个版本的重点观察指标,除崩溃率外有小 20 项,分布在系统的 10 多个页面,且每个指标均需要指定多达 6-10 个过滤条件,最常用的包括版本号.端类型 (PC/ Mac/Androi…
之前说到的jenkins自动化构建发版是通过svn方式,今天这里介绍下通过git方式发本的操作记录. 一.不管是通过svn发版还是git发版,都要首先下载svn或git插件.登陆jenkins,依次点击"Jenkins首页"->"系统管理"->"管理插件"->"可选插件",选在svn或git有关插件(ctrl+f搜索"svn"或"git"),直接进行安装即可安装成功后,…
AEAI Portal门户集成平台为数通畅联的核心产品,本着分享传递的理念,数通畅联将Portal_server.Portal_portlet两个项目开源,目的在于满足客户与伙伴的OEM需求,以及为广大IT爱好者的集成工具提供多一种选择,多一种便利.希望通过开源中国,分享该产品,在交流学习中,使更多的人受益.本次发版的产品AEAI Portal V3.5.2为AEAI Portal V3.5.1版本的升级版,产品下载地址: http://pan.baidu.com/s/1mgj3SV2. AEA…
php 7 正式发版 php 在 2015年 12月 3 日 正式发布了 php7 以下是php7的新特性 性能是php5.6的2倍 显著的减少了内存的使用 抽象语法书 64位的支持 提高了异常层次 很多错误变成了异常 安全的随机数字生成器 空合并符 (??) 返回和常量类型声明 匿名类 零消耗资源 以下是3个PHP7 下载链接 php-7.0.0.tar.bz2 php-7.0.0.tar.gz php-7.0.0.tar.xz…
author:skate time:2014/08/18 Database(Mysql)发版控制 The Liquibase Tool related Database 一.Installation & Configration 二.Advanced Usage of the Liquibase 三.Frequently Questions 二.Advanced Usage of the Liquibase 1.实际场景模拟 实际需求:须要把不同环境的不同分支的数据库变更合并,并按需求应用或回滚…
WPF 自定义 MessageBox (相对完善版)     基于WPF的自定义 MessageBox. 众所周知WPF界面美观.大多数WPF元素都可以简单的修改其样式,从而达到程序的风格统一.可是当你不得不弹出一个消息框通知用户消息时(虽然很不建议在程序中频繁的弹框,恩,我说的是不得不...).那个默认的System.Windows.MessageBox 就显得太丑陋,太不搭调了.因此想到怎么搞一个新的MessageBox替换掉默认的.有童鞋说WPF扩展包中提供了新的MessageBox,那也…
第一篇. 版本迭代是每一个互联网公司必须经历的,尤其是中小型公司,相信不少人踩到过很多坑.接下来的一系列文章将介绍我设计的自动化发版系统! 很多公司没有把配置独立出去,代码的构建.发版通过一个Jenkins job实现,我认为这样很不好.弊端如下: 如果你有N个环境,你将会有N次编译.N次配置.产生N个包.发布N次......: 配置变更困难,可读性比较差: 版本发布总体时间长等等. 事实上我们需要: 一次构建多次发布: 具备包仓库,长期存储并备份成品包: 具备配置管理系统,实现集中管理配置且维…
前言 在生产环境,我们为了降低发版风险,一般都只做增量发布,不做全量发布. 除非项目只有一到两人开发,对时间线和代码脉络结构一清二楚,才可全量发布. 然而增量发布也是有一定隐藏陷阱在里面的,以下就是笔者的项目组在增量迭代过程中一起遇上到陷阱 陷阱1 : 匿名内部类 如果修改的java源码中,有匿名内部类,那么最终在WEB-INF/classes/.......package....../Person.java 下面会生Person$XXX.class的匿名内部类, 但是我们在提交svn时,一般不…
背景 每次到网页里手动发版有点烦,写个脚本来提高开发效率. CFG 在 jenkins 设置里获取 API TOKEN. 把 host 和账号密码拼接起来就可以通过鉴权. const token = { user: '', password: '', } const host = 'jenkins.xxx.cn'; const basicUrl = `http://${token.user}:${token.password}@${host}`; BUILD 调用 jenkins 提供的 jen…
背景:开发将其代码放到svn里面,如何将修改后存放到svn里的代码发布到线上?简单做法:写个shell脚本,用于代码发版.比如开发的代码存放svn的路径是:svn://112.168.19.120/huanqiu_app 首先在发布机上创建一个发版目录 [root@huanqiu ~]# mkdir -p /Data/webroot_svncode/Online_app 然后将svn里的代码下载到发布机本地的发版目录里 [root@huanqiu ~]# cd /Data/webroot_svn…
修改host文件实现自定义域名和iis站点本地调试 自定义域名:myhost.com windows版本:win7 iis版本:iis7.x vs版本:vs2010 现在开始动手设置了: 一.修改host文件 在系统盘中的如下路径 C:\WINDOWS\system32\drivers\etc 去掉只读权限,使用记事本打开,在最后一行添加: 127.0.0.1 myhost.com 保存,关闭. 二.测试自定义域名 方法1.开始,运行,输入cmd,打开cmd后输入ping myhost.com…
检查:VS中,这个文件右击属性,查看生成操作.如果是“无”,改为“内容”.再重新发布就没问题了. 想看发版出来的内容包括哪些,可以从“发布”--“应用程序文件”查看…
背景 SpringCloud分布式项目,部署在多个节点上.一般的发版方式是,使用Kill -15 pid,逐一地关闭.部署.重启. 但中间涉及到一个问题,当执行kill命令时,服务虽然关闭,但Eureka那里依然保存着这台服务器的IP,请求依然会跑到这台服务器上. 直到持续数十秒后,Eureka将该服务的IP剔除掉. 如果请求量大,会导致大量请求在发版的过程中出现异常.所以要想到一个更优雅的方式来部署服务. 方案一: 调用Eureka的接口,让Eureka自动剔除该服务IP. 获取服务的AppI…
随着移动互联网的发展,手机银行凭借低成本.操作简单.不受时间空间约束等优势,正逐步替代传统的网银交易方式.越来越多的银行开始了“业务移动化”转型之路,“手机APP”已经成为企业价值传递和关系维护的关键纽带,客户争夺的主战场已转向移动端,事实上手机银行的用户比例早已超越了网银用户. 但是伴随着银行APP承载的业务需求日益增多.版本迭代速度不断加快,以“手工测试”为基础的测试体系,已很难满足业务对测试效率和质量的要求.APP 测试急需完成从“纯人工”到“人机协同”的范式转换. 一.银行 APP 的质…
转载自:https://www.cnblogs.com/wellful/archive/2004/01/13/10604151.html 版本迭代是每一个互联网公司必须经历的,尤其是中小型公司,相信不少人踩到过很多坑. 很多公司没有把配置独立出去,代码的构建.发版通过一个Jenkins job实现,这样很不好.弊端如下: 如果你有N个环境,你将会有N次编译.N次配置.产生N个包.发布N次......: 配置变更困难,可读性比较差: 版本发布总体时间长等等. 事实上我们需要: 一次构建多次发布:…
Git提交代码规范 - 木之子梦之蝶 - 博客园 https://www.cnblogs.com/liumengdie/p/7885210.html Commit message 的格式 Git 每次提交代码,都要写 Commit message(提交说明),否则就不允许提交. 用commit message最好是能有规范和工具的约束. 每次提交,Commit message 都包括三个部分:header,body 和 footer. 其中,header 是必需的,body 和 footer 可…
目录 一.简介 二.自由风格使用 三.pipeline使用 脚本式 声明式 一.简介 Jenkins在构建记录中,是可以看到谁点的构建的,但pipeline中的全局变量,默认是不支持获取当前构建任务的构建人的,要想获取构建人的信息,只能通过插件来帮助我们获取. 主要用于构建通知,例如发版后将结果通过邮件.钉钉等方式发到群里,这样要附加一些信息,可以将构建人加入进去. 插件:build-user-vars-plugin 插件下载地址,也可以用清华大学镜像源 支持如下变量: Variable Des…
根据编译条件,Debug时输出带行号的日志,Release时关闭日志 /* XCode LLVM XXX - Preprocessing中Debug会添加 DEBUG=1 标志 */ #ifdef DEBUG #define NSLog(FORMAT, ...) fprintf(stderr,"%s:%d\t%s\n",[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String], __LINE__,…
前言 FineUI中的绝大部分回发事件都是由控件触发了,比如按钮的点击事件,下拉列表的改变事件,表格的排序分页事件.但有时我们可能会要自己触发页面回发,这时就要知道怎么使用 JavaScript 来做了,当然这个过程还是 FineUI 所默认支持的AJAX. 手工调用__doPostBack函数 相信每一位使用ASP.NET WebForms的同学都知道这个著名的函数,因为几乎每个页面的源代码中都能看到他的身影: <script type="text/javascript">…
线上有个网站业务部署在tomcat上,由于频繁上线修改,需要经常启动tomcat.tomcat服务自带的bin下没有重启脚本,下面分享一例脚本发版和tomcat重启脚本: 1)现将业务代码从svn里下载到本地,首次下载后,后续就使用svn update更新代码即可.     发版脚本: [root@redmine ~]# cd /Data/webroot_svncode/xqsj_app/banshanbandao/bsbd_war/ [root@redmine bsbd_war]# ls RO…
网上找了个找,最终还是自己做的比较靠谱,道理很简单,直接看代码 代码:   /// <summary> /// =================== 两行标题行 ======================== /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void…
在.NET Framework环境下,我们经常会这么做 把一个web项目不经过发布直接部署到IIS里去,配置上主机名,修改一下hosts文件,就可以用自定义的域名来访问我们的应用程序,使用附加到进程(w3wp.exe)来调试我们的程序,我想大多数.NET程序员也是这么做的.那么在.NET Core环境下还可以这么做吗?答案是可以的. 创建一个ASP.NET Core 2.0的web项目,在项目上右键选择"属性",选择"调试"选项卡 事实上我们也可以直接手动修改lau…
1 升级说明 AEAI HR v1.6.0版是AEAI HR v1.5.2版人力资源管理系统的升级版本,本次升级的系统是基于AEAI DP 3.8.0_20170228进行打包部署的,升级内容主要是针对实际应用过程中客户反馈,对相关BUG进行修正,同时完善部分功能.优化用户体验,升级说明及产品介质已经上传至网盘中,下载地址:http://pan.baidu.com/s/111gia. 2 升级内容 1. 新功能 1) 添加奖惩管理功能,负责对员工的奖励惩罚进行统一管理. 2) 编码表添加工资额度…
基于WPF的自定义 MessageBox. 众所周知WPF界面美观.大多数WPF元素都可以简单的修改其样式,从而达到程序的风格统一.可是当你不得不弹出一个消息框通知用户消息时(虽然很不建议在程序中频繁的弹框,恩,我说的是不得不...).那个默认的System.Windows.MessageBox 就显得太丑陋,太不搭调了.因此想到怎么搞一个新的MessageBox替换掉默认的.有童鞋说WPF扩展包中提供了新的MessageBox,那也只是把MessageBox的样式从XP提高到了Win7样式而已…
“厂长,上一次我们讲过了工作流的整体规划,今天我要动手做啦!我想先把工作流的自定义表单做出来.” “好的,以前我做这方面的东西,我给你设计了一份表结构,你先拿去看看.” “厂长,是不是没发完,怎么就一个表?” “我就知道你会这么问,我现在给你解释一下重点字段的含义.” 数据表:将表单上的内容保存到哪个表. 关联表的主键:要保存表单数据那张表的主键. 是否需要建表:是否需要把表单中的数据存入到表中,这里的意思是,是将表单上面的栏位与数据表的字段一一对应还是直接将整个表单的内容打包存一块.这里呢就看…
一.IIS安装,此处以Windows10操作系统为例 首先依次进入控制面板=>程序=>程序与功能=>启用或关闭Windows功能 将Internet开头的三个选项全部打钩后点击确定安装,安装成功后开始菜单Windows 管理工具下就会有IIS了 此外如果是先安装.NET Framework 4.0 再装IIS 就会提示.NET4.0相关处理程序未被注册到IIS 此时我们可以打开命令窗口 windows+R输入cmd 回车,依次输入以下命令 cd C:\Windows\Microsoft.…