— How to upgrade v2 from SDK v1
Usage
In KARTE SDK v2, we have reviewed the previous design from scratch and built a new design SDK.
The major differences from SDK v1 are the following.
- Change implementation language (Objective-C> Swift)
- Modularization in functional units
- Review of interface
Along with this, work such as changing the installation procedure and replacing the implementation will occur.
This section describes the specific upgrade method from SDK v1 to v2.
SDK構成の変更
SDK v1 has a monolithic structure in which all functions are packaged in a single binary, but SDK v2 has changed to a module structure in which each function is packaged in a binary.
そのため、アプリケーションが必要とする機能に応じてインストールするバイナリを選択する必要があります。
なお KARTE SDK を導入する上で、KarteCore モジュールの導入は必須となります。
詳細な SDK の導入手順については、 SDKを導入する をご覧ください。
Correspondence between each function and module
function | Supported modules | 必須 |
---|---|---|
Core functions / event measurement | KarteCore | ○ |
In-app message | KarteInAppMessaging | - |
Push Notification | KarteRemoteNotification | - |
Set value distribution | KarteVariables | - |
Visual tracking | KarteVisualTracking | - |
Crash event measurement | KarteCrashReporting | - |
インターフェースの違いについて
SDK v2 では、モジュール化に伴い全てのインターフェースの見直しを行いました。
この見直しは破壊的なものあり、インターフェースの後方互換性はありません。
SDK v1 と v2 のインターフェースの対応関係
クラス名とメソッド名の間にある #
はインスタンスメソッド、.
はクラスメソッドを意味します。
SDK v1 IF | SDK v2 IF | Required v2 module |
---|---|---|
KarteTracker.shared(appKey:) | 廃止 | - |
KarteTracker.setup(appKey:) | KarteApp.setup(appKey:) | KarteCore |
KarteTracker.setup(appKey:config:) | KarteApp.setup(appKey:configuration:) | KarteCore |
KarteTracker#appKey | KarteApp.appKey | KarteCore |
KarteTracker#visitorId | KarteApp.visitorId | KarteCore |
KarteTracker#config | KarteApp.configuration | KarteCore |
KarteTracker#init(appKey:) | KarteApp.setup(appKey:) | KarteCore |
KarteTracker#init(appKey:config:) | KarteApp.setup(appKey:configuration:) | KarteCore |
KarteTracker#optIn() | KarteApp.optIn() | KarteCore |
KarteTracker#optOut() | KarteApp.optOut() | KarteCore |
KarteTracker#renewVisitorId() | KarteApp.renewVisitorId() | KarteCore |
KarteTracker#track(_:values:) | Tracker.track(_:values:) | KarteCore |
KarteTracker#track(_:values:view:) | Tracker#init(view:) Tracker#track(_:values:) | KarteCore |
KarteTracker#trackNotification(_:) | Tracker.trackClick(userInfo:) | KarteRemoteNotification |
KarteTracker#trackUncaughtException(_:) | 廃止 | - |
KarteTracker#identify(_:) | Tracker.identify(_:) | KarteCore |
KarteTracker#identify(_:view:) | Tracker#init(view:) Tracker#identify(_:) | KarteCore |
KarteTracker#view(_:) | Tracker.view(_:) | KarteCore |
KarteTracker#view(_:title:) | Tracker.view(_:title:) | KarteCore |
KarteTracker#view(_:title:values:) | Tracker.view(_:title:values:) | KarteCore |
KarteTracker#view(_:title:values:view:) | Tracker#init(view:) Tracker#view(_:title:values:) | KarteCore |
KarteTracker#view(_:values:) | Tracker.view(_:title:values:) | KarteCore |
KarteTracker#registerFCMToken(_:) | KarteApp.registerFCMToken(_:) | KarteRemoteNotification |
KarteTrackerConfig.configure | Configuration.defaultConfiguration | KarteCore |
KarteTrackerConfig.configure(_:) | Configuration.init(_:) | KarteCore |
KarteTrackerConfig#isEnabledTrackingAppLifecycle | 廃止 | - |
KarteTrackerConfig#isEnabledTrackingAppOpen | 廃止 | - |
KarteTrackerConfig#isEnabledTrackingIdfa | 廃止 | - |
KarteTrackerConfig#isEnabledTrackingCrashError | 廃止 | - |
KarteTrackerConfig#isEnabledFCMTokenResend | 廃止 | - |
KarteTrackerConfig#isEnabledOptOutDefault | Configuration#isOptOut | KarteCore |
KarteTrackerConfig#isDryRun | Configuration#isDryRun | KarteCore |
KarteTrackerConfig#isEnabledVisualTracking | 廃止 | - |
KarteTrackerConfig#IDFADelegate | Configuration#idfaDelegate | KarteCore |
KarteTrackerConfig#init(_:) | Configuration#init(_:) | KarteCore |
KarteTrackerConfigBuilder | Configuration | KarteCore |
KarteTrackerJsUtil. stringByAppendingUserSyncQueryParameter(appKey:url:) | UserSync.appendingQueryParameter(_:) | KarteCore |
KarteTrackerJsUtil. URLByAppendingUserSyncQueryParameter(appKey:url:) | UserSync.appendingQueryParameter(_:) | KarteCore |
KarteTrackerJsUtil. setUserSyncScript(with:) | UserSync.setUserSyncScript(_:) | KarteCore |
KarteTrackerJsUtil.setUserSyncScript(with:appKey:) | UserSync.setUserSyncScript(_:) | KarteCore |
KarteIDFADelegate | IDFADelegate | KarteCore |
KarteInAppMessagingManager.shared | InAppMessaging.shared | KarteInAppMessaging |
KarteInAppMessagingManager#isPresenting | InAppMessaging#isPresenting | KarteInAppMessaging |
KarteInAppMessagingManager#delegate | InAppMessaging#delegate | KarteInAppMessaging |
KarteInAppMessagingManager#dismiss() | InAppMessaging#dismiss() | KarteInAppMessaging |
KarteInAppMessagingManager#suppress() | InAppMessaging#suppress() | KarteInAppMessaging |
KarteInAppMessagingManager#unsuppress() | InAppMessaging#unsuppress() | KarteInAppMessaging |
KarteInAppMessagingManagerDelegate# inAppMessagingManager(_:shouldOpen:) | InAppMessagingDelegate# inAppMessaging(_:shouldOpenURL:) | KarteInAppMessaging |
KarteRemoteNotificationHandler. canHandleRemoteNotification(_:) | RemoteNotification#init(userInfo:) | KarteRemoteNotification |
KarteRemoteNotificationHandler. handleRemoteNotification(_:) | RemoteNotification#handle() | KarteRemoteNotification |
KarteRemoteNotificationHandler. retrieveURL(userInfo:) | RemoteNotification#url | KarteRemoteNotification |
KarteVariables.variables | 廃止 | |
KarteVariables.variables(appKey:) | 廃止 | |
KarteVariables.fetch() | Variables.fetch() | KarteVariables |
KarteVariables.fetch(_:) | Variables.fetch(completion:) | KarteVariables |
KarteVariables.variable(forKey:) | Variables.variable(forKey:) | KarteVariables |
KarteVariables.track(variables:eventName:) | Tracker.trackOpen(variables:values:) Tracker.trackClick(variables:values:) | KarteVariables |
KarteVariables.track(variables:eventName:values:) | Tracker.trackOpen(variables:values:) Tracker.trackClick(variables:values:) | KarteVariables |
KarteVariables#init(appKey:) | 廃止 | KarteVariables |
KarteVariables#fetch() | Variables.fetch() | KarteVariables |
KarteVariables#fetch(_:) | Variables.fetch(completion:) | KarteVariables |
KarteVariables#variable(forKey:) | Variables.variable(forKey:) | KarteVariables |
KarteVariables#track(variables:eventName:) | Tracker.trackOpen(variables:values:) Tracker.trackClick(variables:values:) | KarteVariables |
KarteVariables#track(variables:eventName:values:) | Tracker.trackOpen(variables:values:) Tracker.trackClick(variables:values:) | KarteVariables |
KarteVariable#campaignId | Variable#campaignId | KarteVariables |
KarteVariable#shortenId | Variable#shortenId | KarteVariables |
KarteVariable#isDefined | Variable#isDefined | KarteVariables |
KarteVariable#string | Variable#string | KarteVariables |
KarteVariable#array | Variable#array | KarteVariables |
KarteVariable#dictionary | Variable#dictionary | KarteVariables |
KarteVariable#string(defaultValue:) | Variable#string(default:) | KarteVariables |
KarteVariable#integer(defaultValue:) | Variable#integer(default:) | KarteVariables |
KarteVariable#double(defaultValue:) | Variable#double(default:) | KarteVariables |
KarteVariable#bool(defaultValue:) | Variable#bool(default:) | KarteVariables |
KarteVariable#array(defaultValue:) | Variable#array(default:) | KarteVariables |
KarteVariable#dictionary(defaultValue:) | Variable#dictionary(default:) | KarteVariables |
KarteUrlSchemeHandler.handle(_:) | KarteApp.application(_:open:) | KarteApp |
KarteLogger.shared | 廃止 | - |
KarteLogger#logLevel | KarteApp.setLogLevel(:) KarteApp.setLogEnabled(:) | KarteApp |
廃止された機能
複数アプリケーションキー対応
アプリケーションキー毎に Tracker
インスタンスを管理する機能は廃止されました。
アプリ内メッセージ用Windowの表示/非表示通知
アプリ内メッセージ用のWindowが表示および非表示された時に、NotificationCenter
経由で通知する機能は廃止され、代わりに InAppMessagingDelegate
を使った通知に置き換えられました。
詳細は InAppMessagingDelegate
のリファレンスをご覧ください。
アップグレード手順
KARTE SDK v2 にアップグレードする際は、まず KARTE SDK v1 を最新版にアップグレードした上で、SDK v2 にアップグレードすることをお勧めします。
v1 の最新版には v2 と互換性のあるインターフェースを用意しています。
また旧インターフェースは deprecated
となっており、旧インターフェースを利用した状態でビルドを行うと警告が表示されるようになっています。
警告に従い新インターフェースに置き換えていただくことで、v2 アップグレード後はモジュールインポートの修正のみを行えば良い状態となります。
Updated about 1 year ago