我将如何创建一个 git pre-commit 钩子来阻止提交
NSLog(@"random debug stuff");
但跳过
//NSLog(@"useful to keep around");
我将如何创建一个 git pre-commit 钩子来阻止提交
NSLog(@"random debug stuff");
但跳过
//NSLog(@"useful to keep around");
看看Marcus Zarra 很久以前发布的.pch 文件,我在每个项目中都使用它
除其他外,它包含NSLog
替代调用DLog
,使用它的好处是它利用内置的预处理器宏在生产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)
您将需要创建自己的日志系统,您可以在其中指定消息的级别(错误、警告、信息或调试),然后在您不处于调试模式(即-DDEBUG
未传递给编译器)时忽略调试调用,或者每当设置其他编译器定义时,甚至在运行时使用某些配置设置。
我不清楚 git pre-commit 钩子在这种情况下如何工作,因为您的提交状态与您的应用程序在开发方面处于什么阶段无关。