如何创建一个用阻止提交的git预提交挂钩
NSLog(@"random debug stuff");
但跳过
//NSLog(@"useful to keep around");
您需要创建自己的日志记录系统,在该系统中您可以指定消息的级别(错误、警告、信息或调试),然后在未处于调试模式时(即-DDEBUG
未传递给编译器),或者在设置了其他编译器定义时,甚至在运行时使用某些配置设置时,忽略调试调用。
我不清楚git预提交钩子在这种情况下是如何工作的,因为提交的状态与应用程序的开发阶段无关。
看看Marcus Zarra很久以前发布的.pch文件,我在每个项目中都使用它
除其他外,它包含称为DLog
的NSLog
替换,使用它的好处是它利用内置的DEUBUG
预处理器宏在生产中禁用NSLog
只需在YourProject.pch文件中包含以下代码:
#ifdef DEBUG
#define DLog(...) NSLog(@"%s %@", __PRETTY_FUNCTION__, [NSString stringWithFormat:__VA_ARGS__])
#define ALog(...) [[NSAssertionHandler currentHandler] handleFailureInFunction:[NSString stringWithCString:__PRETTY_FUNCTION__ encoding:NSUTF8StringEncoding] file:[NSString stringWithCString:__FILE__ encoding:NSUTF8StringEncoding] lineNumber:__LINE__ description:__VA_ARGS__]
#else
#define DLog(...) do { } while (0)
#ifndef NS_BLOCK_ASSERTIONS
#define NS_BLOCK_ASSERTIONS
#endif
#define ALog(...) NSLog(@"%s %@", __PRETTY_FUNCTION__, [NSString stringWithFormat:__VA_ARGS__])
#endif
#define ZAssert(condition, ...) do { if (!(condition)) { ALog(__VA_ARGS__); }} while(0)