이 문서는 React Native 환경에서 IMQA SDK를 적용하는 방법을 제공합니다.
1. 공통
MPM Module install
React native 환경에서 IMQA SDK 적용을 위해 아래 명령어를 통해 패키지를 설치해주어야 합니다.
Copy npm install imqa-react-native-agent --save
npx pod-install
Copy yarn add imqa-react-native-agent
npx pod-install
2. 프로젝트 설정
1. ImqaSettings.h 파일을 생성 후 아래 내용을 입력합니다.
Copy #import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface ImqaSetting : NSObject
- (void) IMQASetting;
@end
NS_ASSUME_NONNULL_END
2. ImqaSettings.m 파일을 생성 후 아래 내용을 입력합니다.
Copy #import "ImqaSetting.h"
#import <IMQAMPMAgent/IMQAMPMAgent.h>
@implementation ImqaSetting
- (void) IMQASetting{
if (([NSUserDefaults.standardUserDefaults objectForKey:@"serverUrl"] == nil)) {
[NSUserDefaults.standardUserDefaults setObject:@"https://collector.imqa.io" forKey: @"serverUrl"];
}
if (([NSUserDefaults.standardUserDefaults objectForKey:@"projectKey"] == nil)) {
[NSUserDefaults.standardUserDefaults setObject:@"" forKey: @"projectKey"];
}
NSString* PROJECT_KEY = [NSUserDefaults.standardUserDefaults objectForKey:@"projectKey"];
NSString* API_URL = [NSUserDefaults.standardUserDefaults objectForKey:@"serverUrl"];
NSLog(@"[IMQA] setAgentConfig : %@ %@", PROJECT_KEY, API_URL);
IMQAConfig* mpmConfig = [[IMQAConfig alloc] init:PROJECT_KEY];
mpmConfig.api_url = API_URL;
[[IMQAMpm sharedInstance] runWithConfig:mpmConfig];
}
@end
3. AppDelegate.h 파일에서 아래 1개를 임포트하세요.
Copy #import "ImqaSetting.h"
4. AppDelegate.m 파일에서 - (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions 함수 가장 상단에 아래 코드를 추가합니다.
Copy ImqaSetting* is = [ImqaSetting new];
[is IMQASetting];
3. 상세 설정
iOS MPM 프레임워크에는 다양한 설정을 지원하고 있습니다.
수집 주기 설정
IMQA MPM 프레임워크가 데이터를 저장하는 주기와 수집하는 주기에 대해서 초 단위로 설정할 수 있습니다.
Copy IMQAConfig* mpmConfig = [[IMQAConfig alloc] init:@"PROJECT_KEY"];
mpmConfig.dump_interval = 10; // 성능 데이터 덤프를 뜨는 주기 (sec)
mpmConfig.save_interval = 60; // 성능 데이터를 수집서버로 전송하는 주기 (sec)
네트워크 수집 설정
IMQA MPM 프레임워크에서는 네트워크 수집에 대해서 수집 여부를 설정 할 수 있습니다. 또한, 특정 URL 에 대한 수집을 무시할 수 있는 기능을 제공하고 있어, 보안이 필요한 URL은 무시 할 수 있습니다.
Copy IMQAConfig* mpmConfig = [[IMQAConfig alloc] init:@"PROJECT_KEY"];
mpmConfig.useNetworkCollect = YES; // YES: 수집함, NO: 수집안함
mpmConfig.ignoreUrl = @[@"https://url1.com", @"http://url.com"]; // 특정 URL 무시 Array
수집 데이터 확인
IMQA MPM 프레임워크에서 수집하고 있는 데이터가 궁금한 경우 자체 옵션을 통해서 데이터를 Console 로 확인 하실 수 있습니다.
Copy IMQAConfig* mpmConfig = [[IMQAConfig alloc] init:@"PROJECT_KEY"];
mpmConfig.downloadDumpData = YES;
4. 네트워크 수집 (NSURLSession 또는 URLSession 을 사용하는 경우)
NSURLSession 또는 URLSession을 이용하여 네트워크를 통신하는 경우에 일부 상황에서 네트워크 수집을 위해 설정이 필요합니다.
Copy NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration ephemeralSessionConfiguration]; // or default
configuration.protocolClasses = [[IMQAMpm sharedInstance] imqaURLSessionProtocol];
NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration];
5. dSYM 설정
iOS의 Symbolication(기호화) 적용이 된 앱의 경우, dSYM 설정을 통해 클래스 명과 함수 명을 확인할 수 있습니다. ‘iOS > MPM 설정 > dSYM 설정 '을 참고하세요.
Last updated 5 months ago