アップグレードガイド

🚧

このドキュメントは古いバージョンのiOS SDK v1について記載しています

iOS SDK v1は 2021/05/11でサポート終了となります。
SDK v1 からのアップグレードについては、まず SDK v1からv2のアップグレード方法 をご覧ください。

1.8.0へのアップグレード

現行の v1 インターフェースの利用は非推奨となりました。
適宜 KARTE SDK v2 互換インターフェースへの移行をお願いします。

インターフェースの対応関係については、SDK v1からv2のアップグレード方法 をご覧ください。

1.7.7へのアップグレード

1.7.7 へのアップグレードには特別な操作は必要ありません。

1.7.6へのアップグレード

1.7.6 へのアップグレードには特別な操作は必要ありません。

1.7.5へのアップグレード

1.7.5 へのアップグレードには特別な操作は必要ありません。

1.7.4へのアップグレード

1.7.4 へのアップグレードには特別な操作は必要ありません。

1.7.3へのアップグレード

1.7.3 へのアップグレードには特別な操作は必要ありません。

1.7.2へのアップグレード

1.7.2 へのアップグレードには特別な操作は必要ありません。

1.7.1へのアップグレード

1.7.1 へのアップグレードには特別な操作は必要ありません。

1.7.0へのアップグレード

UISceneDelegate を独自に実装する場合は、URLスキーム周りの実装を変更する必要があります。
詳細に関しては、こちら をご覧下さい。

1.6.6へのアップグレード

1.6.6 へのアップグレードには特別な操作は必要ありません。

1.6.5へのアップグレード

1.6.5 へのアップグレードには特別な操作は必要ありません。

1.6.4へのアップグレード

イベントにデフォルトでセットされていた _event_local_date フィールドは廃止されました。
セグメントの設定等には date_local_event_date フィールドを利用するように設定を変更してください。

1.6.3へのアップグレード

Xcode 10.2.1 でビルドするように変更しました。
bitcodeが有効なプロジェクトでビルドする際に Invalid bitcode version エラーが発生する場合は、Xcodeのバージョンを上げるか、bitcodeを無効にしてビルドしてください。

1.6.2へのアップグレード

WebView連携用のクエリパラメータに有効期限が設けられました。
そのため連携用クエリパラメータ付きのURLを使い回している場合は、1.6.2へのアップグレード以降正常に連携が行われなくなる恐れがあります。
loadRequest: を呼び出す直前で都度連携用パラメータを付与するように変更してください。

1.6.1へのアップグレード

1.6.1 へのアップグレードには特別な操作は必要ありません。

1.6.0へのアップグレード

1.6.0 へのアップグレードには特別な操作は必要ありません。

1.5.9へのアップグレード

view() による接客の表示状態のリセット処理が変更されています。バックグラウンドからの復帰時(applicationDidBecomeActive 等)に送信しているカスタムイベントを接客のトリガーにしている場合、view() のリセット処理により接客が表示されなくなるケースがあります。
接客が表示されない場合は、アクションを配信する > アクションを表示する画面を限定する方法についてを参考に接客表示制限オプションをOFFにするか、view() の後にカスタムイベントを発行するように処理の順序を変更してください。

1.5.8へのアップグレード

1.5.8 へのアップグレードには特別な操作は必要ありません。

1.5.7へのアップグレード

1.5.7 へのアップグレードには特別な操作は必要ありません。

1.5.6へのアップグレード

1.5.6 へのアップグレードには特別な操作は必要ありません。

1.5.5へのアップグレード

初期化オプションでIDFAの送信を有効にしているアプリでは修正が必要です。
このバージョン以降では、isEnabledTrackingIdfa=true としてもIDFAの送信が行われません。
新たに初期化オプションとして IDFADelegate というプロパティが追加されましたので、こちらを利用した実装に修正してください。
実装方法の詳細については、SDKの初期化 - 初期化オプション をご覧ください。

1.5.4へのアップグレード

1.3.0 で deprecated となったメソッドを利用中の場合は、修正が必要です。
詳細については こちら をご覧ください。

1.5.3へのアップグレード

1.5.3 へのアップグレードには特別な操作は必要ありません。

1.5.2へのアップグレード

1.5.2 へのアップグレードには特別な操作は必要ありません。

1.5.1へのアップグレード

1.5.1 へのアップグレードには特別な操作は必要ありません。

1.5.0へのアップグレード

1.5.0 へのアップグレードには特別な操作は必要ありません。

1.4.7 へのアップグレード

広告ID(IDFA) をデフォルトで送信しないように変更しました。
IDFAが必要な場合は、初期化オプションを変更する必要があります。

1.4.6へのアップグレード

1.4.6 へのアップグレードには特別な操作は必要ありません。

1.4.5へのアップグレード

1.4.5 へのアップグレードには特別な操作は必要ありません。

1.4.4へのアップグレード

1.4.4 へのアップグレードには特別な操作は必要ありません。

1.4.3へのアップグレード

イベントにデフォルトでセットされる _event_local_date は今後廃止される可能性があります。
セグメントの設定等には date_local_event_date を利用するように設定を変更してください。

1.4.0へのアップグレード

1.4.0 へのアップグレードには特別な操作は必要ありません。

1.3.3へのアップグレード

1.3.3 へのアップグレードには特別な操作は必要ありません。

1.3.2へのアップグレード

1.3.2 へのアップグレードには特別な操作は必要ありません。

1.3.1へのアップグレード

1.3.1 へのアップグレードには特別な操作は必要ありません。

1.3.0へのアップグレード

非推奨メソッド・関数の置き換え

一部のメソッドが非推奨に指定されました。指定されたメソッドは将来削除される可能性がありますので、代替メソッドへ置き換えてください。

初期化用のクラスメソッド

初期化オプションの指定方法が変更になり、NSDictionaryを引数にとるメソッドは非推奨になりました。KarteTrackerConfigを引数にとるメソッドに置き換えてください。

// v1.3.0以降
let config = KarteTrackerConfig.configure { (builder) in
  // TODO: オプション指定
}
KarteTracker.setup(appKey: "YOUR_APP_KEY", config: config)

// v1.2.x以前 (Deprecated)
KarteTracker.setup(withAppKey: "YOUR_APP_KEY", config: [:])
// v1.3.0以降
KarteTrackerConfig *config = [KarteTrackerConfig configureWithBuilder:^(KarteTrackerConfigBuilder * _Nonnull builder) {
  // TODO: オプション指定
}];
[KarteTracker setupWithAppKey:@"YOUR_APP_KEY" withConfig:config];

// v1.2.x以前 (Deprecated)
[KarteTracker setupWithAppKey:@"YOUR_APP_KEY" config:@{}];

初期化用のメソッド

初期化オプションの指定方法が変更になり、NSDictionaryを引数にとるメソッドは非推奨になりました。KarteTrackerConfigを引数にとるメソッドに置き換えてください。

// v1.3.0以降
let config = KarteTrackerConfig.configure { (builder) in
  // TODO: オプション指定
}
KarteTracker(appKey: "YOUR_APP_KEY", config: config)


// v1.2.x以前 (Deprecated)
KarteTracker(appKey: "YOUR_APP_KEY", config: [:])
// v1.3.0以降
KarteTrackerConfig *config = [KarteTrackerConfig configureWithBuilder:^(KarteTrackerConfigBuilder * _Nonnull builder) {
  // TODO: オプション指定
}];
[[KarteTracker alloc] initWithAppKey:@"YOUR_APP_KEY" withConfig:config];

// v1.2.x以前 (Deprecated)
[[KarteTracker alloc] initWithAppKey:@"YOUR_APP_KEY" config:@{}];

ログ出力の制御関数

KarteTrackerShowLog は非推奨になりました。
本関数を利用している場合は、KarteLogger クラスの logLevel プロパティでログ出力の制御を行ってください。

// v1.3.0以降
KarteLogger.shared.logLevel = .error

// v1.2.x以前 (Deprecated)
KarteTrackerShowLog(true);
// v1.3.0以降
KarteLogger.sharedLogger.logLevel = KarteLogLevelError;

// v1.2.x以前 (Deprecated)
KarteTrackerShowLog(YES);

Swift向けの変更

デフォルトトラッカーインスタンスの取得方法の変更

shared メソッドは shared プロパティに置き換えられました。

// v1.3.0以降 (プロパティ)
static var shared: KarteTracker { get }

// v1.2.x以前 (クラスメソッド)
static func shared() -> KarteTracker?

APPキー指定によるトラッカーインスタンスの取得方法の変更

仮引数名が変更され、戻り値はオプショナルではなくなりました。

// v1.3.0以降
static func shared(appKey: String) -> KarteTracker

// v1.2.x以前
static func shared(withAppKey: String) -> KarteTracker?

トラッカーの初期化方法の変更

仮引数名が変更されました。

// v1.3.0以降
static func setup(appKey: String) -> KarteTracker
func init(appKey: String) -> KarteTracker

// v1.2.x以前
static func setup(withAppKey: String) -> KarteTracker
func init(withAppKey: String) -> KarteTracker

1.2.3 へのアップグレード

  • 今回のアップデートにより、広告IDの取得 / 送信がデフォルトで行われるようになりました。そのため、以下のサポートサイトを参考に、Apple への申請の際の設定を見直す必要があります。
    https://support.karte.io/post/13v6pgNyNKtrxyIvYZcnAs

1.2.2 へのアップグレード

1.2.2 へのアップグレードには特別な操作は必要ありません。

1.2.1 へのアップグレード

  • SDKを手動でインストールしている場合、KarteTracker.frameworkの代わりにKarteTracker.embeddedframeworkをプロジェクトへコピーするようにしてください。

1.2.0 へのアップグレード

FCMトークンの送信

FCMトークンの起動時自動送信をデフォルトで行わなくなったため、次の内いずれかの対応をしてください。

  1. (推奨) messaging:didReceiveRegistrationToken: でFCMトークンをKARTEに送信する
// Firebase MessagingDelegate
func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String) {
  // FCMトークンが生成/更新されたタイミングで、KARTE側にFCMトークンを登録
  KarteTracker.shared()?.registerFCMToken(fcmToken)
}
// Firebase MessagingDelegate
- (void)messaging:(FIRMessaging *)messaging didReceiveRegistrationToken:(NSString *)fcmToken
{
  [[KarteTracker sharedTracker] registerFCMToken:fcmToken];
}
  1. SDKの初期化 を参考に enableFCMTokenResend オプションを true にする。

WebKit.frameworkの追加

SDKを手動でインストールしている場合General > Linked Frameworks and LibrariesWebKit.frameworkを追加してください。

1.1.0 へのアップグレード

プッシュ通知関連の実装負荷の軽減

  • 通知の開封イベントの送信が自動で行われるようになりました。
    2重計測を防止するために、KarteTracker の trackNotification: を呼び出すコードは取り除いてください。

  • 通知メッセージに含まれる URL や ディープリンクをSDK側で処理する機能を追加しました。
    通知開封時に KarteRemoteNotificationHandler の handleRemoteNotification: を呼び出すコードを追加してください。

// AppDelegate.swift

func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
  switch application.applicationState { 
    case .active, .inactive:
      // +++ 追加 +++
      if KarteRemoteNotificationHandler.handleRemoteNotification(userInfo) {
        // SDK側でハンドルできた
      } else {
        // SDK側でハンドルできなかった
      }
      // +++ 追加 +++
    case .background:
      break
  }
}

func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
  let userInfo = response.notification.request.content.userInfo
  // +++ 追加 +++
  if KarteRemoteNotificationHandler.handleRemoteNotification(userInfo) {
    // SDK側でハンドルできた
  } else {
    // SDK側でハンドルできなかった
  }
  // +++ 追加 +++
  completionHandler()
}

インストールとセットアップ手順の更新

Firebase SDKの導入手順に合わせて、KARTE SDKの導入手順も更新しました。
詳細な手順については プッシュ通知を受信する をご覧ください。

1.0.1 へのアップグレード

1.0.1 へのアップグレードには特別な操作は必要ありません。

1.0.0 へのアップグレード

インストールとセットアップ手順の更新

SDKの導入にCocoaPodsの利用が可能になりました。
詳細な手順については SDKのセットアップ をご覧ください。