iOS SDK 사용 방법
- 인쇄
- PDF
iOS SDK 사용 방법
- 인쇄
- PDF
Article Summary
Share feedback
Thanks for sharing your feedback!
Classic/VPC 환경에서 이용 가능합니다.
이 장에서는 Effective Log Search & Analytics NELO iOS SDK의 사용법을 설명합니다.
Effective Log Search & Analytics NELO iOS는 다음의 기기와 OS를 지원합니다.
iPhone 4S, 5, 5c, 5s 이상 (armv7/arm64)
iOS 8.0 이상
다운로드
최신 배포 버전은 Fat 바이너리 형태로 제공됩니다. iOS는 i386 시뮬레이터와 (armv7/arm64) 디바이스 아키텍처용 바이너리를 포함하고 있습니다.
API 목록
“NeloLog” 클래스에서 아래와 같은 API를 제공합니다.
// Default NeloLog init method
+ (bool) init:(NSString *)server ofProjectName:(NSString*)appName withProjectVersion:(NSString*)appVersion;
+ (bool) init:(NSString *)server ofProjectName:(NSString*)appName withProjectVersion:(NSString*)appVersion forUserId:(NSString*)userId;
// send log method
+ (void) debug:(NSString*)errorCode withMessage:(NSString*)message;
+ (void) error:(NSString*)errorCode withMessage:(NSString*)message;
+ (void) fatal:(NSString*)errorCode withMessage:(NSString*)message;
+ (void) info:(NSString*)errorCode withMessage:(NSString*)message;
+ (void) warn:(NSString*)errorCode withMessage:(NSString*)message;
+ (void) debug:(NSString*)errorCode withMessage:(NSString*)message atLocation:(NSString*)location;
+ (void) error:(NSString*)errorCode withMessage:(NSString*)message atLocation:(NSString*)location;
+ (void) fatal:(NSString*)errorCode withMessage:(NSString*)message atLocation:(NSString*)location;
+ (void) info:(NSString*)errorCode withMessage:(NSString*)message atLocation:(NSString*)location;
+ (void) warn:(NSString*)errorCode withMessage:(NSString*)message atLocation:(NSString*)location;
+ (void) setUserId:(NSString*)userId;
+ (void) setLogType:(NSString*)logType;
+ (void) setLogSource:(NSString*) logSource;
+ (void) setCrashBlock:(void (^)(void))block;
+ (void) setLogLevelFilter:(NSString*)logLevelFilter;
+ (void) setNeloSendMode:(NSString*)sendMode;
+ (void) enableClientSideSymbolication:(bool)enable;
+ (NSArray *) getReservedFields;
+ (NSDictionary *) getNeloSendMode;
+ (NSDictionary *) getNeloLogLevel;
NELO SDK 사용법
Nelo SDK Framework 추가
“Frameworks”에 NELO2SDK.framework와 CrashReporter.framework를 추가합니다.
[그림 - Framweorks에 추가된 NELO iOS SDK]“Build Phases”의 “Link Binary With Libraries” 항목에 아래 시스템 프레임워크를 추가합니다.
UIKit.framework
SystemConfiguration.framework
CoreTelephony.framework
Foundation.framework
[그림 - Build Phases에 추가된 시스템프레임워크]
API 상세 설명
초기화 함수
// Default NeloLog init method
+ (bool) init:(NSString *)server ofProjectName:(NSString*)appName withProjectVersion:(NSString*)appVersion;
+ (bool) init:(NSString *)server ofProjectName:(NSString*)appName withProjectVersion:(NSString*)appVersion forUserId:(NSString*)userId;
참고
SDK Version 0.32부터 onPort, byProtocol 파라미터가 제거되었습니다.
Parameters
* server : Effective Log Search & Analytics 수집서버의 주소(아래 전송서버 참고)
* appName : Effective Log Search & Analytics에 등록된 프로젝트 아이디
* appVersion : Effective Log Search & Analytics에 전송할 App의 버전. 이 버전을 가지고 Symbolication시 심볼파일과 매핑
* userId : 사용자의 ID정보
전송 서버
iOS SDK는 HTTPS 프로토콜을 이용하여 로그를 전송합니다.
- Collector 서버 주소
- elsa-col.ncloud.com
로그 전송
// send log method
+ (void) debug:(NSString*)errorCode withMessage:(NSString*)message;
+ (void) error:(NSString*)errorCode withMessage:(NSString*)message;
+ (void) fatal:(NSString*)errorCode withMessage:(NSString*)message;
+ (void) info:(NSString*)errorCode withMessage:(NSString*)message;
+ (void) warn:(NSString*)errorCode withMessage:(NSString*)message;
+ (void) debug:(NSString*)errorCode withMessage:(NSString*)message atLocation:(NSString*)location;
+ (void) error:(NSString*)errorCode withMessage:(NSString*)message atLocation:(NSString*)location;
+ (void) fatal:(NSString*)errorCode withMessage:(NSString*)message atLocation:(NSString*)location;
+ (void) info:(NSString*)errorCode withMessage:(NSString*)message atLocation:(NSString*)location;
+ (void) warn:(NSString*)errorCode withMessage:(NSString*)message atLocation:(NSString*)location;
Parameters
- errorCode : NELO의 errorCode필드에 매핑됨. 길이 제한 있음(128자).
- message : NELO의 body필드에 매핑됨. 길이 제한 없음(전체 로그 용량 제한이 있음).
- location : NELO의 location필드에 매핑. error가 발생한 위치를 전송.
사용법
[NeloLog info:@"ErrorCode" withMessage:@"Message"];
기타 함수
+ (void) setUserId:(NSString*)userId;
+ (void) setLogType:(NSString*)logType;
+ (void) setLogSource:(NSString*) logSource;
+ (void) setCrashBlock:(void (^)(void))block;
+ (void) setLogLevelFilter:(NSString*)logLevelFilter;
+ (void) setNeloSendMode:(NSString*)sendMode;
// Client Side Symbolication
+ (void) enableClientSideSymbolication:(bool)enable;
setCrashBlock
- Crash Callback 함수
- 해당 block 함수에 Crash 발생 시 동작할 코드를 작성하면, 크래시가 발생하여 크래시 전송 시 해당 코드를 실행한 후 전송함
- 코드 예
[NeloLog setCrashBlock:^{ NSLog(@"crashed"); [NeloLog setCustomField:@"MyValue" forKey:@"MyKey"]; }];
- 코드 예
setLogLevelFilter
- 특정 로그 이상만 전송하도록 로그 레벨을 설정하는 함수
- 아래 정의된 레벨만 설정 가능하며, 설정된 레벨 이상의 로그만 전송함
- DEBUG < INFO < WARN < ERROR < FATAL
- 값은 아래의 Constant값으로 정의되어 있음
- NELO2_LOGLEVEL_DEBUG
- NELO2_LOGLEVEL_INFO
- NELO2_LOGLEVEL_WARN
- NELO2_LOGLEVEL_ERROR
- NELO2_LOGLEVEL_FATAL
- 기본값은 DEBUG
- 코드 예
[NeloLog setLogLevelFilter:NELO2_LOGLEVEL_WARN];
setNeloSendMode
- IOS SDK는 아래와 같은 전송 모드를 지원함
- ALL: 네트워크에 연결되어 있다면 로그 전송
- WIFI: 네트워크가 WIFI 상태일 때만 로그 전송
- 기본값은 ALL
enableClientSideSymbolication
- Symbolication을 클라이언트에서 수행할지 여부 설정
- 기본값은 아래와 같음
- IOS SDK: false(클라이언트에서 Symbolication 작업하지 않음)
- MAC SDK: true(클라이언트에서 Symbolication 작업을 수행함)
- 클라이언트에서 Symbolication 작업을 수행하면, 크래시 발생 시 앱이 중지될 때 약간의 지연이 발생
Effective Log Search & Analytics iOS SDK 기본 사용 예
NSString* appID = @"02b96c3d8bbe_elsa-test";
NSString* appVer= @"1.0.0";
NSString* serverAddr = @"elsa-col.ncloud.com"; //Effective Log Search & Analytics 수집 서버 주소
NSString* userID = @"tester"; //사용자 ID
// Nelo Init
[NeloLog init:serverAddr ofProjectName:appID withProjectVersion:appVer forUserId:userID];
// Nelo 로그 전송
[NeloLog info:@"ErrorCode" withMessage:@"Message"];
[NeloLog error:@"ErrorCode" withMessage:@"Message" atLocation:@"test loc"];
FAQ
1. bitcode enabled 앱의 dSYMs(Symbol)은 어디서 받나요?
Xcode 또는 iTunes Connect에서 받을 수 있습니다.
- iTunes Connect를 사용해서 Debug Symbols을 다운로드할 경우 "My Apps"의 앱의 빌드 목록에서 원하는 버전을 선택합니다. "Download dSYM"을 선택하면 다운로드합니다.
이 문서가 도움이 되었습니까?