- 인쇄
- PDF
iOS SDK
- 인쇄
- PDF
Classic/VPC 환경에서 이용 가능합니다.
iOS SDK에서는 Effective Log Search & Analytics 2.0 서비스가 제공하는 iOS SDK의 사용 방법을 설명합니다.
iOS SDK는 HTTPS 프로토콜을 이용하여 로그를 전송합니다.
SDK를 사용하는 순서는 다음와 같습니다.
1. 사전 준비
iOS SDK를 설치하기 위한 사전 준비 사항은 다음과 같습니다.
- 네이버 클라우드 플랫폼의 콘솔에서 프로젝트를 생성해 주십시오.
- 생성한 프로젝트의 상세 정보 화면에서 txtToken 값을 확인해 주십시오.
- iOS용 SDK를 다운로드해 주십시오.
2. iOS SDK 설치
iOS SDK를 설치하는 방법은 다음과 같습니다.
- 다운로드한 SDK 파일의 압축을 풀어 주십시오.
- SDK를 설치할 iOS프로젝트의
Frameworks
폴더에 SDK 파일을 저장해 주십시오.- Nelo2SDK.framework
- CrashReporter.framework
- Xcode를 실행하여 프로젝트를 열어 주십시오.
- TARGETS에서 빌드할 타겟을 클릭해 주십시오.
- Build Phases를 선택한 후 Link Binary With Libraries 영역에 다음 시스템 프레임워크를 추가해 주십시오.
- UIKit.framework
- SystemConfiguration.framework
- CoreTelephony.framework
- Foundation.framework
3. SDK 사용
다음의 Effective Log Search & Analytics 2.0 iOS SDK를 사용하는 실제 코드 예를 참고하여 프로젝트에 로그를 전송해 주십시오.
NSString* appID = @"02b96c3d8bbe_elsa-test";
NSString* appVer= @"1.0.0";
NSString* serverAddr = @"elsa-v2-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"];
iOS SDK API 명세
iOS SDK는 다음과 같은 API를 제공합니다.
초기화 API
초기화하는 API는 다음과 같습니다.
// Default NeloLog init method
+ (bool) init:(NSString *)serverAddr ofProjectName:(NSString*)appName withProjectVersion:(NSString*)appVersion;
+ (bool) init:(NSString *)serverAddr ofProjectName:(NSString*)appName withProjectVersion:(NSString*)appVersion forUserId:(NSString*)userId;
각 파라미터에 대한 설명은 다음과 같습니다.
파라미터 | 설명 |
---|---|
serverAddr | 로그 수집 서버의 주소
|
appName | 프로젝트 아이디 |
appVersion | 로그를 전송할 앱의 버전 정보
|
userId | 사용자 아이디 |
SDK Version 0.32부터 onPort, byProtocol 파라미터가 삭제되었습니다.
<예시>
NSString* appID = @"02b96c3d8bbe_elsa-test";
NSString* appVer= @"1.0.0";
NSString* serverAddr = @"elsa-v2-col.ncloud.com"; //Effective Log Search & Analytics 2.0 수집 서버 주소
NSString* userID = @"tester"; //사용자 ID
// Nelo Init
[NeloLog init:serverAddr ofProjectName:appID withProjectVersion:appVer forUserId:userID];
로그 전송 API
로그를 전송하는 API는 다음과 같습니다.
// 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;
각 파라미터에 대한 설명은 다음과 같습니다.
파라미터 | 설명 |
---|---|
errorCode | NELO의 errorCode 필드에 매핑되는 값(길이 제한: 128자) |
message | NELO의 body 필드에 매핑되는 값(길이 제한 없으나 전체 로그 용량은 제한 있음) |
location | NELO의 location 필드에 매핑되는 값(error 가 발생한 위치를 전송) |
<예시>
[NeloLog info:@"ErrorCode" withMessage:@"Message"];
옵션 설정 API
옵션 설정 API는 다음과 같습니다.
사용자 아이디 설정
사용자 아이디를 설정하는 API는 다음과 같습니다.
+ (void) setUserId:(NSString*)userId;
각 파라미터에 대한 설명은 다음과 같습니다.
파라미터 | 설명 |
---|---|
userId | 사용자 아이디 |
로그 유형 설정
로그 유형을 설정하는 API는 다음과 같습니다.
+ (void) setLogType:(NSString*)logType;
각 파라미터에 대한 설명은 다음과 같습니다.
파라미터 | 설명 |
---|---|
logType | 로그 유형(logType) 정보 |
크래시 콜백
크래시 콜백 API 사용하여 크래시 발생 시 크래시 로그를 전송하기 전에 사용자가 정의한 함수를 호출할 수 있습니다. 크래시 콜백 API는 다음과 같습니다.
+ (void) setCrashBlock:(void (^)(void))block;
각 파라미터에 대한 설명은 다음과 같습니다.
파라미터 | 설명 |
---|---|
block | 앱 크래시 발생 시 크래시를 전송하는 방법 설정 |
<예시>
[NeloLog setCrashBlock:^{
NSLog(@"crashed");
[NeloLog setCustomField:@"MyValue" forKey:@"MyKey"];
}];
로그 레벨(loglevel) 설정
로그 레벨(loglevel) 이상의 로그만 전송하는 API는 다음과 같습니다.
- 로그 레벨(logLevel)별로 함수를 사용합니다.
- 로그 레벨(logLevel): Fatal, Error, Warn, Info, Debug
- 값은 다음의 Constant값으로 정의되어 있습니다.
- NELO2_LOGLEVEL_DEBUG (기본값)
- NELO2_LOGLEVEL_INFO
- NELO2_LOGLEVEL_WARN
- NELO2_LOGLEVEL_ERROR
- NELO2_LOGLEVEL_FATAL
+ (void) setLogLevelFilter:(NSString*)logLevelFilter;
각 파라미터에 대한 설명은 다음과 같습니다.
파라미터 | 설명 |
---|---|
logLevelFilter | 로그 레벨 이상의 로그만 NELO로 전송 |
<예시>
[NeloLog setLogLevelFilter:NELO2_LOGLEVEL_WARN];
로그 전송 방법 설정
로그 전송 방법을 설정하는 API는 다음과 같습니다.
+ (void) setNeloSendMode:(NSString*)sendMode;
각 파라미터에 대한 설명은 다음과 같습니다.
파라미터 | 설명 |
---|---|
sendMode | 로그 전송 방법 설정 |
파라미터 설정값에 따른 네트워크별 로그 전송 방법은 다음과 같습니다.
ALL
설정 시네트워크 상태 전송 방법 3g 전송 Wi-Fi 전송 Not Connected 미전송 WIFI
설정 시네트워크 상태 전송 방법 3g 미전송 Wi-Fi 전송 Not Connected 미전송
심벌리케이션 수행 설정
클라이언트에서의 심벌리케이션(Symbolication) 수행 여부를 설정하는 API는 다음과 같습니다.
- SDK의 기본 설정값은 다음과 같습니다.
- iOS SDK:
false
(클라이언트에서 심벌리케이션 작업을 하지 않음) - mac SDK:
true
(클라이언트에서 심벌리케이션 작업을 수행함) - 클라이언트에서 심벌리케이션 작업을 수행하면, 크래시 발생 시 앱이 중지될 때 약간의 지연이 발생
- iOS SDK:
+ (void) enableClientSideSymbolication:(bool)enable;
각 파라미터에 대한 설명은 다음과 같습니다.
파라미터 | 설명 |
---|---|
enable | 클라이언트에서의 심벌리케이션 수행 여부 설정 |