Show Menu
トピック×

iOS エクステンション実装

iOS エクステンションを使用して、Apple Watch アプリ(WatchOS 1)、Today ウィジェット、Photo Editing ウィジェットおよびその他の iOS エクステンションアプリから使用状況データを収集できます。

新しい Adobe Experience Platform Mobile SDK リリース

Adobe Experience Platform Mobile SDK に関する情報やドキュメントをお探しの場合、最新のドキュメントについては、 こちら をクリックしてください。
2018 年 9 月に、SDK の新しいメジャーバージョンをリリースしました。これらの新しい Adobe Experience Platform Mobile SDK は、 Experience Platform Launch から設定できます。
  • 開始するには、Adobe Experience Platform Launch に移動します。
  • Experience Platform SDK リポジトリの内容については、 Github: Adobe Experience Platform SDK を参照してください。

独自のラッパーに代わる iOS SDK の使用に関する推奨事項

独自のラッパーではなく、iOS SDK を使用することをお勧めします。
Apple は、本体アプリにリクエストを送信し、応答を受信することによって Watch アプリと本体アプリとの通信を可能にする API のセットを提供しています。Watch アプリから本体アプリに辞書としてトラッキングデータを送信し、本体アプリに対してトラッキングメソッドを呼び出してデータを送信することは可能ですが、この方法には限界があります。
ほとんどの場合、Watch アプリの使用時には本体アプリがバックグラウンドで実行されているので、安全に呼び出せるメソッドは TrackLocation TrackActionInBackground TrackBeacon の 3 つのみとなります。他のトラッキングメソッドはライフサイクルデータに干渉するので、Watch アプリからデータを送信する際には使用できません。
Watch アプリ向けの SDK には、アプリ内メッセージ以外のすべてのモバイル機能が含まれています。そのため、上記の 3 つのトラッキングメソッドで必要なデータを収集できる場合であっても、iOS SDK を使用してください。

はじめに

少なくとも以下のターゲットを持つプロジェクトがあることを確認します。
  • アプリを収容する 1 つのターゲット。
  • エクステンション用の 1 つのターゲット。
WatchKit アプリを使用する場合は、3 つ目のターゲットが必要です。Apple Watch 用の開発について詳しくは、「 Apple Watch 用の開発 」を参照してください。

含まれるアプリの設定

次の手順を Xcode プロジェクトで実行します。
  1. AdobeMobileLibrary フォルダーをプロジェクトにドラッグします。
  2. ADBMobileConfig.json ファイルが本体アプリのターゲットのメンバーであることを確認します。
  3. 本体アプリのターゲットの​ Build Phases ​タブで、 Link Binary with Libraries ​セクションを展開して、以下のライブラリを追加します。
    • AdobeMobileLibrary.a
    • libsqlite3.dylib
    • SystemConfiguration.framework
  4. 本体アプリのターゲットの​ Capabilities ​タブを開き、 App Groups ​を有効にして、新しいアプリグループ(例: group.com.adobe.testAp )を追加します。
  5. AppDelegate で、Adobe Mobile ライブラリとやり取りをおこなう前に、アプリグループを application:didFinishLaunchingWithOptions に設定します。
    [ADBMobile 
          setAppGroup:@"group.com.adobe.testApp"];
    
    
  6. アプリが予期せぬエラーなくビルドされることを確認します。

拡張機能の設定

  1. ADBMobileConfig.json ファイルがエクステンションのターゲットのメンバーであることを確認します。
  2. エクステンションのターゲットの​ Build Phases ​タブで、 Link Binary with Libraries ​セクションを展開して、以下のライブラリを追加します。
    • AdobeMobileLibrary_Extension.a
    • libsqlite3.dylib
    • SystemConfiguration.framework
  3. エクステンションのターゲットの​ Capabilities ​タブを開き、 App Groups ​を有効にして、上記の「 本体アプリの設定 」の手順 4 で追加したアプリグループを選択します。
  4. InterfaceController で、Adobe Mobile ライブラリとその他のやり取りをおこなう前に、アプリグループを awakeWithContext: に設定します。
    [ADBMobile 
          setAppGroup:@"group.com.adobe.testApp"];
    
    
  5. アプリが予期せぬエラーなくビルドされることを確認します。

追加情報

以下の情報を覚えておいてください。
  • データの取得元が本体アプリかエクステンションかを示すためのコンテキストデータ値 a.RunMode が追加されました。
    • a.RunMode = Application
      この値は、ヒット元が本体アプリであることを意味します。
    • a.RunMode = Extension
      この値は、ヒット元がエクステンションであることを意味します。
  • SDK の以前のバージョンからアップグレードする場合、本体アプリを起動すると、すべてのユーザーデフォルト値とキャッシュされているファイルが、本体アプリのフォルダーからアプリグループの共有フォルダーに自動的に移行されます。
  • 本体アプリが起動されない場合、エクステンションからのヒットは破棄されます。
  • バージョン番号とビルド番号は、本体アプリとエクステンションアプリ間で同じである必要があります。
  • iOS エクステンションアプリに対してライフサイクルコールはトリガーされません。