# Sample 앱 테스트

아래 영상을 통해 샘플 앱 설치 방법을 확인하실 수 있으며, 샘플앱 SDK는 깃허브 페이지에서 확인 가능합니다.

* [github 바로가기](https://github.com/onycom-imqa/IMQA_IOS_SAMPLE/blob/main/README.md)

{% embed url="<https://www.youtube.com/watch?v=IZ2Aptlrk6k>" %}

### IMQA Sample 앱을 이용하여 서비스 연동하기 <a href="#sample1" id="sample1"></a>

iOS는 Crash, MPM 2개의 SDK를 설치하셔야 합니다. 자세한 설치 방법은 아래 링크를 통해 확인하세요.

* [\[iOS\] MPM 설치하기](https://docs.imqa.io/imqa-guide/installation/ios/mpm-sdk-install)
* [\[iOS\] Crash 설치하기](https://docs.imqa.io/imqa-guide/installation/ios/crash-sdk-install)<br>

1\. Podfile을 열어 아래와 같이 팅되어 있는지 확인합니다.

```
use_frameworks!
pod 'IMQACrashAgent', '3.9.0'
pod 'IMQAMPMAgent', '3.9.0'
```

2\. 터미널에서 해당 프로젝트 위치에서 pod install을 실행해 주세요.

> CocoaPods이 아닌 다른 설치 방법은 위 가이드를 통해 확인하시거나 [IMDev](https://imdev.imqa.io/)에 문의를 남겨주세요.

&#x20;3\. 프로젝트 파일을 열고 AppDelegate.swift에서 프로젝트 키를 설정합니다.

```swift
@main
class AppDelegate: UIResponder, UIApplicationDelegate {

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        IQKeyboardManager.shared.enable = true
        
        initProjectKey(project_key: "<프로젝트 키 입력하기>")
        initSampleApp()
        initImqaSdk()
        
        return true
    }
}
```

4\. 프로젝트를 빌드하고 실행하면 아래와 같은 화면과 Debug 메시지가 뜨면 성공입니다.

![](https://3726060384-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FzFyCopc6yAp3UcEYW6la%2Fuploads%2FxaGIrpJkn8mwvFRQQ6Le%2Fios-1.png?alt=media\&token=8530348c-c279-437c-9125-7c57397ff9e9)

```
[IMQA LOG] IMQA MPM Initalize Status : OK
[IMQA LOG] IMQA MPM Version Infomation : 3.9.0
[IMQA] Sent dump data
```

### 샘플 앱 구조 <a href="#sample2" id="sample2"></a>

IMQA는 성능 데이터를 수집 후 수집 주기에 따라 데이터를 전송하거나, 앱이 재기동 되는 시점에 데이터를 전송합니다. 데이터를 생성 후(앱 사용 후) 설정된 수집 주기(1분)만큼 기다리거나, 앱을  다 켜면 앱이 IMQA 수집 서버로 전송됩니다.

> 앱에 뒤로가기 버튼이 없습니다. 왼쪽 화면 끝에서 슬라이드 하는 제스처를 해주시면 이전 화면으로 돌아 갈 수 있습니다.

#### SDK 설정

프로젝트 키 또는 수집 서버를 설정하실 수 있습니다.

![](https://3726060384-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FzFyCopc6yAp3UcEYW6la%2Fuploads%2Fg5rOV9WqRupw3Yhj7S50%2Fios-2.png?alt=media\&token=00bce9c5-9f7d-4e29-9b49-31c9cf64dbe4)

#### Uncaught Objective-C Exception

강제종료가 되는 크래시를 발생시킵니다. 이 경우에는 디버깅 모드에서는 사용할 수 없습니다. Xcode와의 연결을 끊어주신 다음 사용하시면 정상적으로 수집됩니다.

#### Custom Error

IMQA에서는 커스텀한 에러를 발생시킬 수 있습니다. CustomErrorViewController.swift에서 사용 예시를 확인할 수 있습니다.

#### Page Move

IMQA는 별도의 화면마다 코드 설정 필요 없이 자동으로 화면 데이터를 수집합니다. 다양하게 이동하면서 테스트해 보실 수 있습니다.

#### WKWebview

IMQA는 Webview 정보도 중요한 데이터라 생각하여 다양한 데이터를 수집합니다. 웹뷰 데이터를 수집하는 방법이 알고 싶으시다면 가이드를 확인해주세요. \[[자세히 보기](https://docs.imqa.io/imqa-guide/installation/mpm-sdk-install#6.-wkwebview)]

#### URL Session

네이티브 내에서 네트워크 통신하는 데이터도 수집을 하고 있습니다. 별도의 설정 없이 네트워크 통신을 수집해보세요.
