Debug 模式与 Release 模式的区分

区分 Debug 模式与 Release 模式有两种方法:

第一种方法:

在 (Build Settings -> Swift Compiler - Custom Flags) 中加入 -DDEBUG
Stackoverflow

但是在 NSHipster 中有提到不推荐此方法 Avoiding -DDEBUG in Swift

第二种方法

通过 Preprocessor Macros (预处理宏命令) 来区分模式。

1.新建一个 PreProcessorMacros.h 文件,代码如下

#import <Foundation/Foundation.h>

@interface PreProcessorMacros : NSObject

#ifndef PreProcessorMacros_h
#define PreProcessorMacros_h

extern BOOL const DEBUG_BUILD;

#endif

@end


@implementation PreProcessorMacros

#ifdef DEBUG
    BOOL const DEBUG_BUILD = YES;
#else
    BOOL const DEBUG_BUILD = NO;
#endif

@end

2.在 Bridged Header: #import "PreProcessorMacros.h"

也可直接把步骤一的代码放进 Bridged Header

3.测试

if DEBUG_BUILD {
    print("It's Debug build")
} else {
    print("It's Release build")
}

⌘⇧< 进入下图可模式切换


原理

关键的代码在:

#ifdef DEBUG
    BOOL const DEBUG_BUILD = YES;
#else
    BOOL const DEBUG_BUILD = NO;
#endif

此处的 DEBUG 究竟来自哪?

进入 'Build Settings' -> 搜索 'Preprocessor Macros',真相大白


源码:[DEBUGBUILD](https://github.com/Limon-O-O/DEBUGBUILD)

抽取于干货极多的:Reader Submissions -
New Year's 2016
🍺