# Universal Link 설정

## Universal 기본 설정

* Universal Link를 사용하기 위해 XCODE 프로젝트 Capabilities에 Associated Domains를 추가해주세요.

![](https://423922975-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_ZKcnBFmefw9Yfed6b%2F-M_ctADrW9550NW6hBv6%2F-M_ctnwLifIUvUjn6SnS%2Fios_universalLink.png?alt=media\&token=db90933c-1576-4dfe-934f-07a369d9f6da)

associated Domains에 WiseTracker 서비스 도메인을 등록합니다

* 일반 어트리뷰션링크 > <mark style="color:blue;">**applinks:app.wisetracker.co.kr**</mark>&#x20;
* 단축링크 사용시 > <mark style="color:blue;">**applinks:wtl.im**</mark>

<div align="left"><img src="https://423922975-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_ZKcnBFmefw9Yfed6b%2F-M_ctADrW9550NW6hBv6%2F-M_cuHAfupl1S3g3Z_um%2FassociatedDomain.png?alt=media&#x26;token=ddf6525c-0bef-42bb-ba2c-87a4c4205fb1" alt=""></div>

* 와이즈트래커 서비스 설정 > 어플리케이션 설정 > 범용 링크 설정의 유니버셜 링크에 아래의 코드를 함께 첨부된 이미지와 같이 완성하여 붙여넣습니다.

<div align="left"><img src="https://423922975-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_ZKcnBFmefw9Yfed6b%2F-M_ctADrW9550NW6hBv6%2F-M_cuOb77IL7znAHoOcE%2Fteam-ID-%E1%84%92%E1%85%AA%E1%86%A8%E1%84%8B%E1%85%B5%E1%86%AB-1024x605.png?alt=media&#x26;token=ab34a91b-294f-4334-a233-c7768861bc05" alt=""></div>

{% tabs %}
{% tab title="JSON" %}

```javascript
{
  "applinks": {
    "apps": [],
    "details": [
      {
        "paths": ["/ul/적용할 서비스번호/*"], // ex) ["/ul/102/*"]
        "appID": "TeamID.BundleID" // ex) "P8KRZA7924.com.wisetracker.RW"
      }
    ]
  }
}
```

{% endtab %}
{% endtabs %}

<div align="left"><img src="https://423922975-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_ZKcnBFmefw9Yfed6b%2F-M_ctADrW9550NW6hBv6%2F-M_d8pg6suayS_RKulTG%2Fios-universal-link.png?alt=media&#x26;token=105ae103-f94e-4181-a6dd-d2b88db18f35" alt=""></div>

## 어플리케이션 설정

프로젝트 내 appDelegate.m 파일에 `continueUserActivity`를 인자로 받는 `application` 함수에 아래와 같이 적용이 되면 유니버셜 링크를 통한 광고분석이 가능합니다.

{% tabs %}
{% tab title="Swift" %}

```swift
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
    // 아래의 코드를 적용해주세요
    if let uniLink = userActivity.webpageURL?.absoluteString {
        DOT.setDeepLink(uniLink)
        let landingUri :String = DOT.parseAttributionLink(toGetDeeplinkUrl: uniLink)
       
         // 리턴받은 landingUri값(DeepLink Sheme)으로 화면 진입 로직 구현(기존 open url에서 사용하던 화면 이동 로직과 동일하게 구현하면 됨)
    }
    //
    return false;
 }
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
- (BOOL)application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {
  /*
   * Wisetracker Universal link 분석을 위한 코드
   */
  if( userActivity.webpageURL != nil ){
    NSString* uniLink = userActivity.webpageURL.absoluteString;
    if( uniLink != nil && ![uniLink isEqualToString:@""]){
      [DOT setDeepLink:uniLink];
    }
  }

  NSString *landingUri = DOT parseAttributionLinktoGetDeeplinkUrl:userActivity.webpageURL.absoluteString];
  // 리턴받은 landingUri값(DeepLink Sheme)으로 화면 진입 로직 구현(기존 open url에서 사용하던 화면 이동 로직과 동일하게 구현하면 됨)
  
  return false;
}
```

{% endtab %}
{% endtabs %}
