【Objective-C】디버그 로그를 개발 환경에서만 표시한다

소개



NSLog를 사용해 출력시킨 로그를 개발 환경에서만 출력시키는 방법을 비망록으로서 기입합니다.

1단계



우선, 적절한 Sample 프로젝트를 작성해, 「Supporting Files」안에 prefix.pch를 작성합니다. (어디라도 좋지만 Xcode6 이전에는 「Supporting Files」에 프로젝트 작성시부터 있었던 것 같기 때문에 이 중에)



이름은 프로젝트 이름 Prefix.pch입니다.
여기서 SamplePrefix.pch



2단계



Build Settings에서
Apple LLVM 7.1 - Language(본 환경은 7.1)의
Prefix Header에 경로를 추가합니다.
순서 1과 같은 장소에 추가했다면 패스는
「프로젝트명/파일명.pch」가 됩니다.



순서 3



1단계에서 만든 "SamplePrefix.pch"에 아래 코드 추가
#ifdef DEBUG
#   define NSLog(...) NSLog(__VA_ARGS__)
#else
#   define NSLog(...)
#endif



※prefix.pch에 쓴 내용은 import하지 않아도 모든 파일에 적용됩니다

시도해보기



아래와 같이 ViewController.m의 viewDidLoad 내에서 NSLog를 사용해보십시오.
보통 당연하지만 아래와 같이 로그가 출력됩니다.



Scheme의 설정을 아래의 순서로 변경

・Sample(프로젝트명)을 눌러



· Edit Scheme을 눌러


· Build Configuration을 Debug에서 Release로 변경


다시 빌드하면 아래와 같이 NSLog를 주석 처리하지 않았지만 로그가 출력되지 않습니다.


사이고에게



프로젝트 작성시에 이번 절차를 거치면, Release시 실수로 NSLog를 지워 잊고 있었다는 것에도 대응할 수 있다고 생각했습니다.
또한 프로덕션 환경과 개발 환경에서 APIKey와 URL 등이 다른 경우도 이번 macro를 사용하여 구분할 수 있습니다.

좋은 웹페이지 즐겨찾기