> ## Documentation Index
> Fetch the complete documentation index at: https://help.airbridge.io/llms.txt
> Use this file to discover all available pages before exploring further.

# SDK 마이그레이션 가이드 - 코도바-아이오닉 SDK

에어브릿지 코도바-아이오닉 SDK의 업데이트에 필요한 사항을 확인할 수 있습니다. 현재 버전 이후부터 업데이트 이후 버전까지의 사항을 모두 확인하는 것을 권장합니다.

## v2.x에서 v4.0으로 업데이트

에어브릿지 코도바-아이오닉 SDK를 v4.0으로 업데이트하면 확인해 주세요.

<Accordion title="전체 변경사항">
  #### 옵션

  | airbridge.json (v2)             | airbridge.json (v4)                               | 변경점              |
  | ------------------------------- | ------------------------------------------------- | ---------------- |
  | -                               | sdkEnabled                                        | 새로운 기능이 추가되었습니다. |
  | logLevel                        | logLevel                                          | -                |
  | autoStartTrackingEnabled        | autoStartTrackingEnabled                          | -                |
  | trackingAuthorizeTimeoutSeconds | autoDetermineTrackingAuthorizationTimeoutInSecond | 이름이 변경되었습니다.     |
  | facebookDeferredAppLinkEnabled  | trackMetaDeferredAppLinkEnabled                   | 이름이 변경되었습니다.     |
  | sessionTimeoutSeconds           | sessionTimeoutInSecond                            | 이름이 변경되었습니다.     |
  | metaInstallReferrer             | metaInstallReferrerAppID                          | 이름이 변경되었습니다.     |
  | trackAirbridgeLinkOnly          | trackAirbridgeDeeplinkOnlyEnabled                 | 이름이 변경되었습니다.     |
  | -                               | trackInSessionLifecycleEventEnabled               | 새로운 기능이 추가되었습니다. |
  | userInfoHashEnabled             | hashUserInformationEnabled                        | 이름이 변경되었습니다.     |
  | sdkSignatureSecretID            | sdkSignatureID                                    | 이름이 변경되었습니다.     |
  | sdkSignatureSecret              | sdkSignatureSecret                                | 이름이 변경되었습니다.     |
  | -                               | clearEventBufferOnInitializeEnabled               | 새로운 기능이 추가되었습니다. |
  | -                               | eventBufferCountLimit                             | 새로운 기능이 추가되었습니다. |
  | -                               | eventBufferSizeLimitInGibibyte                    | 새로운 기능이 추가되었습니다. |
  | -                               | eventTransmitIntervalInSecond                     | 새로운 기능이 추가되었습니다. |

  #### 함수 (Cordova)

  | Airbridge (v2)               | Airbridge (v4)                  | 변경점                                   |
  | ---------------------------- | ------------------------------- | ------------------------------------- |
  | state.setAttributionListener | setOnAttributionReceived        | 이름이 변경되었습니다.                          |
  | deeplink.setDeeplinkListener | setOnDeeplinkReceived           | 이름이 변경되었습니다.                          |
  | event.trackEvent             | trackEvent                      | 이름이 변경되었습니다. 어트리뷰트를 입력받는 방식이 변경되었습니다. |
  | state.deviceUUID             | fetchDeviceUUID                 | 이름이 변경되었습니다. 값을 콜백으로 제공하도록 변경되었습니다.   |
  | -                            | fetchAirbridgeGeneratedUUID     | 새로운 기능이 추가되었습니다.                      |
  | -                            | isUninstallTrackingNotification | 새로운 기능이 추가되었습니다.                      |
  | placement.click              | click                           | 이름이 변경되었습니다. 콜백 기능이 추가되었습니다.          |
  | placement.impression         | impression                      | 이름이 변경되었습니다. 콜백 기능이 추가되었습니다.          |
  | state.setUser                | -                               | User 관련 함수들로 대체되었습니다.                 |
  | state.updateUser             | -                               | User 관련 함수들로 대체되었습니다.                 |
  | -                            | setUserID                       | 새로운 기능이 추가되었습니다.                      |
  | -                            | clearUserID                     | 새로운 기능이 추가되었습니다.                      |
  | -                            | setUserEmail                    | 새로운 기능이 추가되었습니다.                      |
  | -                            | clearUserEmail                  | 새로운 기능이 추가되었습니다.                      |
  | -                            | setUserPhone                    | 새로운 기능이 추가되었습니다.                      |
  | -                            | clearUserPhone                  | 새로운 기능이 추가되었습니다.                      |
  | -                            | setUserAttribute                | 새로운 기능이 추가되었습니다.                      |
  | -                            | removeUserAttribute             | 새로운 기능이 추가되었습니다.                      |
  | -                            | clearUserAttributes             | 새로운 기능이 추가되었습니다.                      |
  | -                            | setUserAlias                    | 새로운 기능이 추가되었습니다.                      |
  | -                            | removeUserAlias                 | 새로운 기능이 추가되었습니다.                      |
  | -                            | clearUserAlias                  | 새로운 기능이 추가되었습니다.                      |
  | -                            | clearUser                       | 새로운 기능이 추가되었습니다.                      |
  | setDeviceAlias               | setDeviceAlias                  | -                                     |
  | removeDeviceAlias            | removeDeviceAlias               | -                                     |
  | clearDeviceAlias             | clearDeviceAlias                | -                                     |
  | registerPushToken            | registerPushToken               | -                                     |
  | -                            | enableSDK                       | 새로운 기능이 추가되었습니다.                      |
  | -                            | disableSDK                      | 새로운 기능이 추가되었습니다.                      |
  | -                            | isSDKEnabled                    | 새로운 기능이 추가되었습니다.                      |
  | state.startTracking          | startTracking                   | 이름이 변경되었습니다.                          |
  | -                            | stopTracking                    | 새로운 기능이 추가되었습니다.                      |
  | -                            | isTrackingEnabled               | 새로운 기능이 추가되었습니다.                      |
  | createWebInterface           | -                               | WebInterface 관련 함수들로 대체되었습니다.         |
  | -                            | createWebInterfaceScript        | 새로운 기능이 추가되었습니다.                      |
  | -                            | handleWebInterfaceCommand       | 새로운 기능이 추가되었습니다.                      |

  #### 상수 (Cordova)

  | AirbridgeCategory (v2)  | AirbridgeCategory (v4)  | 변경점 |
  | ----------------------- | ----------------------- | --- |
  | SIGN\_UP                | SIGN\_UP                | -   |
  | SIGN\_IN                | SIGN\_IN                | -   |
  | SIGN\_OUT               | SIGN\_OUT               | -   |
  | HOME\_VIEWED            | HOME\_VIEWED            | -   |
  | PRODUCT\_LIST\_VIEWED   | PRODUCT\_LIST\_VIEWED   | -   |
  | SEARCH\_RESULTS\_VIEWED | SEARCH\_RESULTS\_VIEWED | -   |
  | PRODUCT\_VIEWED         | PRODUCT\_VIEWED         | -   |
  | ADD\_PAYMENT\_INFO      | ADD\_PAYMENT\_INFO      | -   |
  | ADD\_TO\_WISHLIST       | ADD\_TO\_WISHLIST       | -   |
  | ADD\_TO\_CART           | ADDED\_TO\_CART         | -   |
  | INITIATE\_CHECKOUT      | INITIATE\_CHECKOUT      | -   |
  | ORDER\_COMPLETED        | ORDER\_COMPLETED        | -   |
  | ORDER\_CANCELED         | ORDER\_CANCELED         | -   |
  | START\_TRIAL            | START\_TRIAL            | -   |
  | SUBSCRIBE               | SUBSCRIBE               | -   |
  | UNSUBSCRIBE             | UNSUBSCRIBE             | -   |
  | AD\_IMPRESSION          | AD\_IMPRESSION          | -   |
  | AD\_CLICK               | AD\_CLICK               | -   |
  | COMPLETE\_TUTORIAL      | COMPLETE\_TUTORIAL      | -   |
  | ACHIEVE\_LEVEL          | ACHIEVE\_LEVEL          | -   |
  | UNLOCK\_ACHIEVEMENT     | UNLOCK\_ACHIEVEMENT     | -   |
  | RATE                    | RATE                    | -   |
  | SHARE                   | SHARE                   | -   |
  | SCHEDULE                | SCHEDULE                | -   |
  | SPEND\_CREDITS          | SPEND\_CREDITS          | -   |

  | AirbridgeAttributes (v2)              | AirbridgeAttribute (v4)               | 변경점              |
  | ------------------------------------- | ------------------------------------- | ---------------- |
  | -                                     | ACTION                                | 새로운 기능이 추가되었습니다. |
  | -                                     | LABEL                                 | 새로운 기능이 추가되었습니다. |
  | -                                     | VALUE                                 | 새로운 기능이 추가되었습니다. |
  | TOTAL\_VALUE                          | -                                     | VALUE로 대체되었습니다.  |
  | CURRENCY                              | CURRENCY                              | -                |
  | ORIGINAL\_CURRENCY                    | ORIGINAL\_CURRENCY                    | -                |
  | PRODUCTS                              | PRODUCTS                              | -                |
  | PERIOD                                | PERIOD                                | -                |
  | IS\_RENEWAL                           | IS\_RENEWAL                           | -                |
  | RENEWAL\_COUNT                        | RENEWAL\_COUNT                        | -                |
  | PRODUCT\_LIST\_ID                     | PRODUCT\_LIST\_ID                     | -                |
  | CART\_ID                              | CART\_ID                              | -                |
  | TRANSACTION\_ID                       | TRANSACTION\_ID                       | -                |
  | TRANSACTION\_TYPE                     | TRANSACTION\_TYPE                     | -                |
  | TRANSACTION\_PAIRED\_EVENT\_CATEGORY  | TRANSACTION\_PAIRED\_EVENT\_CATEGORY  | -                |
  | TRANSACTION\_PAIRED\_EVENT\_TIMESTAMP | TRANSACTION\_PAIRED\_EVENT\_TIMESTAMP | -                |
  | TOTAL\_QUANTITY                       | TOTAL\_QUANTITY                       | -                |
  | QUERY                                 | QUERY                                 | -                |
  | IN\_APP\_PURCHASED                    | IN\_APP\_PURCHASED                    | -                |
  | CONTRIBUTION\_MARGIN                  | CONTRIBUTION\_MARGIN                  | -                |
  | ORIGINAL\_CONTRIBUTION\_MARGIN        | ORIGINAL\_CONTRIBUTION\_MARGIN        | -                |
  | LIST\_ID                              | LIST\_ID                              | -                |
  | RATE\_ID                              | RATE\_ID                              | -                |
  | RATE                                  | RATE                                  | -                |
  | MAX\_RATE                             | MAX\_RATE                             | -                |
  | ACHIEVEMENT\_ID                       | ACHIEVEMENT\_ID                       | -                |
  | SHARED\_CHANNEL                       | SHARED\_CHANNEL                       | -                |
  | DATE\_TIME                            | DATE\_TIME                            | -                |
  | DESCRIPTION                           | DESCRIPTION                           | -                |
  | IS\_REVENUE                           | IS\_REVENUE                           | -                |
  | PLACE                                 | PLACE                                 | -                |
  | SCHEDULE\_ID                          | SCHEDULE\_ID                          | -                |
  | TYPE                                  | TYPE                                  | -                |
  | LEVEL                                 | LEVEL                                 | -                |
  | SCORE                                 | SCORE                                 | -                |
  | AD\_PARTNERS                          | AD\_PARTNERS                          | -                |
  | IS\_FIRST\_PER\_USER                  | IS\_FIRST\_PER\_USER                  | -                |

  | AirbridgeProduct (v2)   | AirbridgeAttribute (v4) | 변경점 |
  | ----------------------- | ----------------------- | --- |
  | PRODUCT\_ID             | PRODUCT\_ID             | -   |
  | PRODUCT\_NAME           | PRODUCT\_NAME           | -   |
  | PRODUCT\_PRICE          | PRODUCT\_PRICE          | -   |
  | PRODUCT\_QUANTITY       | PRODUCT\_QUANTITY       | -   |
  | PRODUCT\_CURRENCY       | PRODUCT\_CURRENCY       | -   |
  | PRODUCT\_POSITION       | PRODUCT\_POSITION       | -   |
  | PRODUCT\_CATEGORY\_ID   | PRODUCT\_CATEGORY\_ID   | -   |
  | PRODUCT\_CATEGORY\_NAME | PRODUCT\_CATEGORY\_NAME | -   |
  | PRODUCT\_BRAND\_ID      | PRODUCT\_BRAND\_ID      | -   |
  | PRODUCT\_BRAND\_NAME    | PRODUCT\_BRAND\_NAME    | -   |

  #### 함수 (iOS)

  | AirbridgeCO (v2)                 | AirbridgeCordova (v4) | 변경점          |
  | -------------------------------- | --------------------- | ------------ |
  | getInstance                      | initializeSDK         | 이름이 변경되었습니다. |
  | deeplink.handleURLSchemeDeeplink | trackDeeplink         | 이름이 변경되었습니다. |
  | deeplink.handleUserActivity      | trackDeeplink         | 이름이 변경되었습니다. |

  #### 함수 (Android)

  | AirbridgeCO (v2)        | AirbridgeCordova (v4) | 변경점          |
  | ----------------------- | --------------------- | ------------ |
  | init                    | initializeSDK         | 이름이 변경되었습니다. |
  | processDeeplinkData     | trackDeeplink         | 이름이 변경되었습니다. |
  | setLifecycleIntegration |                       | -            |
</Accordion>

### SDK 설치 및 초기화

airbridge.json 의 키값이 변경되었습니다. 아래와 같이 키값을 변경해 주세요.

| airbridge.json (v2)             | airbridge.json (v4)                               |
| ------------------------------- | ------------------------------------------------- |
| trackingAuthorizeTimeoutSeconds | autoDetermineTrackingAuthorizationTimeoutInSecond |
| facebookDeferredAppLinkEnabled  | trackMetaDeferredAppLinkEnabled                   |
| sessionTimeoutSeconds           | sessionTimeoutInSecond                            |
| metaInstallReferrer             | metaInstallReferrerAppID                          |
| trackAirbridgeLinkOnly          | trackAirbridgeDeeplinkOnlyEnabled                 |
| userInfoHashEnabled             | hashUserInformationEnabled                        |
| sdkSignatureSecretID            | sdkSignatureID                                    |
| sdkSignatureSecret              | sdkSignatureSecret                                |

iOS의 `AirbridgeCO.getInstance` 함수가 `AirbridgeCordova.initializeSDK` 함수로 대체되었습니다. `ios/YOUR_PROJECT_NAME/AppDelegate.m` 파일을 수정해 주세요.

```diff lines theme={"theme":{"light":"github-dark-dimmed","dark":"github-dark-dimmed"}}
- #import "AirbridgeCO.h"
- ...
- - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
-     [AirbridgeCO getInstance:@"YOUR_APP_SDK_TOKEN" appName:@"YOUR_APP_NAME" withLaunchOptions:launchOptions];
-     ...
- }
+ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
+     [AirbridgeCordova initializeSDKWithName:@"YOUR_APP_NAME" token:@"YOUR_APP_SDK_TOKEN"];
+     ...
+ }
```

안드로이드의 `AirbridgeCO.init` 함수가 `AirbridgeCordova.initializeSDK` 함수로 대체되었습니다. `android/app/src/main/java/.../MainApplication.kt` 파일을 수정해 주세요.

```diff lines theme={"theme":{"light":"github-dark-dimmed","dark":"github-dark-dimmed"}}
- import co.ab180.airbridge.cordova.AirbridgeCO;
- ...
- @Override
- public void onCreate() {
-     super.onCreate();
-     AirbridgeCO.init(this, "YOUR_APP_NAME", "YOUR_APP_SDK_TOKEN");
-     ...
- }
+ import co.ab180.airbridge.cordova.AirbridgeCordova;
+ ...
+ @Override
+ public void onCreate() {
+     super.onCreate();
+     AirbridgeCordova.initializeSDK(this, "YOUR_APP_NAME", "YOUR_APP_SDK_TOKEN");
+     ...
+ }
```

### 딥링크

`Airbridge.setDeeplinkListener` 함수가 `Airbridge.setOnDeeplinkReceived` 함수로 대체되었습니다.

```diff lines theme={"theme":{"light":"github-dark-dimmed","dark":"github-dark-dimmed"}}
- Airbridge.deeplink.setDeeplinkListener(function (deeplink) {
-     // show proper content
- });
+ Airbridge.setOnDeeplinkReceived(function (deeplink) {
+     // show proper content
+ });
```

iOS의 `AirbridgeCO.deeplink.handleURLSchemeDeeplink` , `AirbridgeCO.deeplink.handleUserActivity` 함수가 `AirbridgeCordova.trackDeeplink` 함수로 대체되었습니다.

```diff lines theme={"theme":{"light":"github-dark-dimmed","dark":"github-dark-dimmed"}}
- #import "AirbridgeCO.h"
- ...
- (BOOL)application:(UIApplication *)application
-             openURL:(NSURL *)url
-             options:(NSDictionary<UIApplicationOpenURLOptionsKey, id>*)options
- {
-   [AirbridgeCO.deeplink handleURLSchemeDeeplink:url];
-   return YES;
- }
- 
- -  (BOOL)application:(UIApplication *)application
- continueUserActivity:(NSUserActivity *)userActivity
-   restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler
- {
-   [AirbridgeCO.deeplink handleUserActivity:userActivity];
-   return YES;
- }
+ @import Airbridge
+ ...
+ - (BOOL)application:(UIApplication *)application
+             openURL:(NSURL *)url
+             options:(NSDictionary<UIApplicationOpenURLOptionsKey, id>*)options
+ {
+   [AirbridgeCordova trackDeeplinkWithUrl:url];
+   return YES;
+ }
+ 
+ -  (BOOL)application:(UIApplication *)application
+ continueUserActivity:(NSUserActivity *)userActivity
+   restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler
+ {
+   [AirbridgeCordova trackDeeplinkWithUserActivity:userActivity];
+   return YES;
+ }
```

안드로이드의 `AirbridgeCO.processDeeplinkData`  함수가 `AirbridgeCordova.trackDeeplink` 함수로 대체되었습니다.

```diff lines theme={"theme":{"light":"github-dark-dimmed","dark":"github-dark-dimmed"}}
- import co.ab180.airbridge.cordova.AirbridgeCO;
- ...
- @Override
- protected void onResume() {
-   super.onResume();
-   AirbridgeCO.processDeeplinkData(getIntent());
- }
+ import co.ab180.airbridge.cordova.AirbridgeCordova;
+ ...
+ @Override
+ protected void onResume() {
+   super.onResume();
+   AirbridgeCordova.trackDeeplink(getIntent());
+ }
```

### 인앱 이벤트 및 유저 정보

<Danger>
  **주의하세요**

  기존 `AirbridgeAttributes.TOTAL_VALUE` 대신 `AirbridgeAttribute.VALUE` 에 값을 입력해 주세요.

  `AirbridgeAttributes.TOTAL_VALUE` 를 사용하고 `value` 를 정의하면 `AirbridgeAttributes.TOTAL_VALUE` 가 `value` 를 덮어 쓰는 로직은 Cordova-Ionic SDK v4부터 삭제되었습니다.
</Danger>

`Airbridge.event.trackEvent` 함수가 삭제 됩니다.

`Airbridge.trackEvent` 함수의 매개변수가 변경 되었습니다. 기존의 action, label, value 는 semanticAttributes 내에 정의 하도록 수정 되었습니다.

아래 예시코드를 따라 `Airbridge.trackEvent`함수를 사용 해주세요.

```diff lines theme={"theme":{"light":"github-dark-dimmed","dark":"github-dark-dimmed"}}
- Airbridge.trackEvent('event', {
-     action: '...',
-     label: '...',
-     value: 100,
-     semanticAttributes: {
-         [AirbridgeAttributes.QUERY]: '...',
-     },
-     customAttributes: {
-         'key1': '...',
-         'key2': '...',
-         'key3': '...',
-     },
- })
+ Airbridge.trackEvent('event', {
+     [AirbridgeAttribute.ACTION]: '...',
+     [AirbridgeAttribute.LABEL]: '...',
+     [AirbridgeAttribute.VALUE]: 100,
+     [AirbridgeAttribute.QUERY]: '...',
+ }, {
+     'key1': '...',
+     'key2': '...',
+     'key3': '...',
+ })
```

<Danger>
  **주의하세요**

  `Airbridge.event.trackEvent` 함수의 두 번째 파라미터에 해당하는 `action` , `label` , `value` , `semanticAttributes` 값은 `Airbridge.trackEvent` 함수의 두 번째 파라미터에 포함되어야 합니다.

  `Airbridge.event.trackEvent` 함수의 두 번째 파라미터에 해당하는 `customAttributes` 값은 `Airbridge.trackEvent` 함수의 세 번째 파라미터에 포함되어야 합니다.
</Danger>

`Airbridge.state.setUser` , `Airbridge.state.updateUser` 함수가 [Airbridge.setUser](/ko/developers/cordova-sdk-v4#유저-속성-설정하기) 관련 함수로 대체되었습니다. 유저 정보를 한 번에 설정하는 `setUser` , `updateUser` 함수는 지원하지 않습니다.

```diff lines theme={"theme":{"light":"github-dark-dimmed","dark":"github-dark-dimmed"}}
- Airbridge.state.setUser({ ID: '...', email: '...' })
- Airbridge.state.updateUser({ phone: '...' })
+ Airbridge.setUserID('...')
+ Airbridge.setUserEmail('...')
+ Airbridge.setUserPhone('...')
```

### 추가 설정하기

`Airbridge.setAttributionListener` 함수가 `Airbridge.SetOnAttributionReceived` 함수로 대체되었습니다.

```diff lines theme={"theme":{"light":"github-dark-dimmed","dark":"github-dark-dimmed"}}
- Airbridge.setAttribuitonListener((attribution) => {
-     // using attribution
- })
+ Airbridge.setOnAttributionReceived((attribution) => {
+     // using attribution
+ })
```

`Airbridge.placement.click` , `Airbridge.placement.impression` 함수가 `Airbridge.click` , `Airbridge.impression` 함수로 대체되었습니다.

```diff lines theme={"theme":{"light":"github-dark-dimmed","dark":"github-dark-dimmed"}}
- Airbridge.placement.click(url)
- Airbridge.placement.impression(url)
+ Airbridge.click(url)
+ Airbridge.impression(url)
```

`Airbridge.createWebInterface` 함수가 `Airbridge.createWebInterfaceScript` , `Airbridge.handleWebInterfaceCommand` 함수로 대체되었습니다.

```diff lines theme={"theme":{"light":"github-dark-dimmed","dark":"github-dark-dimmed"}}
- var inAppBrowserRef = cordova.InAppBrowser.open(url, target, options);
- inAppBrowserRef.addEventListener('loadstart', loadstartCallback);
- inAppBrowserRef.addEventListener('message', messageCallBack);
- const webInterface = Airbridge.createWebInterface(
-     'YOUR_WEB_TOKEN',
-     (function (arg) {
-         return `window.cordova_iab.postMessage(${arg})`;
-     })
- );
- function loadstartCallback(event) {
-     inAppBrowserRef.executeScript({ code : webInterface.script });
- }
- function messageCallBack(params){
-     webInterface.handle(JSON.stringify(params.data));
- }
+ const script = await Airbridge.createWebInterfaceScript(
+     'YOUR_WEB_TOKEN',
+     (function (arg) {
+         return `window.cordova_iab.postMessage(${arg})`;
+     })
+ );
+ var inAppBrowserRef = cordova.InAppBrowser.open(url, target, options);
+ inAppBrowserRef.addEventListener('loadstart', loadstartCallback);
+ inAppBrowserRef.addEventListener('message', messageCallBack);
+ function loadstartCallback(event) {
+     inAppBrowserRef.executeScript({ code : script });
+ }
+ function messageCallBack(params){
+     Airbridge.handleWebInterfaceCommand(JSON.stringify(params.data));
+ }
```

## v2.x 업데이트

코도바-아이오닉 SDK 각 버전의 주요 변경사항을 참고해 주세요.

### v2.6.0

2023년 9월 4일 이후에 생성된 에어브릿지 앱의 경우, 딥링크 콜백에서 제공하는 딥링크 URL 이 에어브릿지 대시보드에 입력된 내용을 2번 디코딩하여 제공하는 문제가 v2.5.0 \~ v2.5.2  에 있었던 것이 해결되었습니다.

### v2.5.0

2023년 9월 4일 이후에 생성된 에어브릿지 앱의 경우, 딥링크 콜백에서 제공하는 딥링크 URL 에 더이상 airbridge\_referrer 가 추가되지 않게 됩니다.

ios app 업데이트 하시는 경우, 마지막으로 계산된 SKAdNetwork Conversion Value 로 확정되고, 추가적으로 계산하지 않습니다.

* 2.5.0 미만 버전에서는 SKAdNetwork Conversion Value 를 최대 24시간 동안만 계산합니다.
* 새로 설치하시는 유저에 대해서는 문제되지 않습니다.

`deeplink.page` 가 deprecated 되었습니다. 2.5.0 부터는 `abr.ge` 로 딥링크 도메인을 사용 하여 코드를 작성 하도록 권장 드립니다

* `deeplink.page` 는 하위 호환을 위해 여전히 지원 및 동작은 되고 있습니다.

### v2.4.0

trackingAuthorizeTimeout 의 기본값이 30초로 변경됩니다.

<link rel="alternate" hrefLang="en" href="https://help.airbridge.io/en/developers/migration-guide-for-cordova-sdk-v4" />

<link rel="alternate" hrefLang="ko" href="https://help.airbridge.io/ko/developers/migration-guide-for-cordova-sdk-v4" />
