Airbridge Unity SDKには2018.4バージョン以上のUnityが必要です。
Attention
Airbridge Unity SDKは、
unity-jar-resolver
(External Dependency Manager for Unity)を通じてライブラリ従属性を管理しています。
Airbridge Unity SDK 1.9.3より以前のバージョンを使う場合は、次のページを参考してそのUnityに対するパッケージ設定を予め完了してください。Airbridge Unity SDK 1.9.3以降のバージョンからは、Airbridge PluginとEDM4Uアセットをすべて自動的に読み込むので、別途にUnityパッケージを設定する必要はありません。
最新バージョンの Airbridge Unity SDK をダウンロードしてください。
Unity上部の Assets > Import Package > Custom Package ... をクリックしてパッケージを追加してください。
インストールが完了するとUnity上部にAB180のタブが表示されます。
Unity上部の AB180 > Airbridge Settings をクリックすると、以下のような画面が表示されます。
Attention
フィールドに入力した後、 Update iOS App Setting または Update Android Manifest を必ずクリックして適用してください。
Attention
Android マニフェスト ファイルをユーザーが直接マージする場合、 Project > Plugins > Airbridge > Android > AndroidManifest.xml ファイルを参照してください。
Unity上部の AB180 > Airbridge Settings の App Name および App Token フィールドに、ダッシュボードで設定されたアプリ名(Unique ID)
とアプリのSDKトークン情報
をそれぞれ入力してください。
上記の情報はAirbridgeダッシュボードの Settings → Tokens タブで確認できます。
Airbridge Unity SDKは基本的に初期化作業は不要ですが、各プラットフォームごとに別途マイグレーション作業が必要なケースも存在します。
設定が完了すれば、アプリケーションのインストール後、Airbridgeダッシュボードの Raw Data → App Real-time Log タブでアプリのイベントを確認できます。
Attention
Real-time Logは最長5分まで遅延が発生することがあります。
iOSとAndroid、各プラットフォームごとのディープリンクダッシュボード設定は以下の通りです。
Unity上部の AB180 > Airbridge Settings の iOS URI Scheme フィールドに、ダッシュボードで設定された iOS URI Scheme 情報を入力してください。
上記の情報はAirbridgeダッシュボードの Tracking Link → Deep Link タブで確認できます。
Unity上部の AB180 > Airbridge Settings の Android URI Scheme フィールドに、ダッシュボードで設定された iOS URI Scheme 情報を入力してください。
上記の情報はAirbridgeダッシュボードの Tracking Link → Deep Link タブで確認できます。
Airbridgeダッシュボードでトラッキングリンクを生成する場合、 deeplink.page または abr.ge の形のトラッキングリンクを使用できますが、広告主の方ではトラッキングリンクのブランディングおよびクリック率(CTR)の向上のため、以下のような設定をすることで go.my_company.com/abcd のようなカスタマイズURLをトラッキングリンクとして利用することができます。
使用するカスタムドメインを こちらのガイド に沿って設定してください。
設定したカスタムドメインのURLをUnity上部の AB180
> Airbridge Settings
の Custom Domain
フィールドに入力してください。
ユーザーがクリックしたディープリンクのデータを取得するためには、以下のようにメッセージを取得するためのオブジェクト名を登録してください。
private void Awake()
{
AirbridgeUnity.SetDeeplinkCallback("AirbridgeManager");
}
上記のように コールバック
を登録すると、このクラスは以下のような関数でディープリンクURLを取得します。
using UnityEngine;
public class AirbridgeManager : MonoBehaviour
{
private void Awake() {
AirbridgeUnity.SetDeeplinkCallback("AirbridgeManager");
}
// Method will call by Airbridge when deeplink detected
private void OnTrackingLinkResponse(string url)
{
}
}
Airbridge UnityはUnityから提供する UnitySendMessage 機能を使ってディープリンクの情報を送信します。
Airbridge Unity SDKのディープリンク設定が完了した後、以下のようなリンクからアプリのページに正しく遷移するかを確認できます。
YOUR_APP_URI_SCHEME://
ディープリンクの設定および確認が完了すれば、Airbridgeダッシュボード → Raw Data → App Real-time Log タブで以下のように確認できます。
Airbridgeではウェブ(Web)とアプリ(App)間で断片化されたユーザーの貢献度を計測するために、以下のようなユーザーの識別子情報を収集します。
User Email : Eメール
User Phone : 電話番号
User ID : ユーザー固有のID(ユーザーを特定できるID値で、ウェブとアプリで1:1の関係になるもの)
User Alias : ユーザーを表すことができるその他のID (e.g. ロイヤルティプログラム用のID、関連会社の統合IDなど)
入力したユーザーのEメールと電話番号は自動でハッシュ(SHA256)され、サーバーに渡されます。
Airbridge Unity SDKでは以下の方法でユーザーの識別子情報を設定できます。
Dictionary<string, string> alias = new Dictionary<string, string>();
AirbridgeUser user = new AirbridgeUser();
user.SetId("personID");
user.SetEmail("persondoe@airbridge.io");
user.SetPhoneNumber("1(123)123-1234");
user.SetAlias("key", "value");
AirbridgeUnity.SetUser(user);
User Aliasの数は最大10個までです。
User AliasのkeyはStringタイプで、長さは最大128文字です。
User Aliasのkeyは^[a-z_][a-z0-9_]*$の正規表現と一致する必要があります。
User AliasのvalueはStringタイプで、Stringは最大128文字です。
ユーザーの識別子情報を一度設定すれば、全てのイベントで識別子情報が一緒に送られます。
MTA(Multi-Touch Attribution)分析の正確性向上、内部データ分析、サードパーティ(3rd Party)ソリューションとの連携などの目的で、ユーザーの追加属性データを設定できます。
Dictionary<string, object> attrs = new Dictionary<string, object>();
AirbridgeUser user = new AirbridgeUser();
user.SetAttributes("key", "value");
AirbridgeUnity.SetUser(user);
User Attributeの数は最大100個までです。
User AttributeのkeyはStringタイプで、長さは最大128文字です。
User Attributeのkeyは^[a-z_][a-z0-9_]*$の正規表現と一致する必要があります。
User AttributeのvalueはInteger, Float, Long, BooleanタイプとStringタイプで、Stringは最大1024文字です。
Airbridge Unity SDKで設定したユーザー情報は、Airbridgeダッシュボード → Raw Data → App Real-time Log タブで以下のように確認できます。
SDKにデバイス識別子情報を設定すると、設定後から収集される全てのイベントにデバイス識別情報を追加することができます。デバイス識別子を一度設定すれば、削除しない限り、アプリを終了しても設定は維持されます。
AirbridgeUnity.SetDeviceAlias("ADD_YOUR_KEY", "AND_YOUR_VALUE");
AirbridgeUnity.RemoveDeviceAlias("DELETE_THIS_KEY");
AirbridgeUnity.ClearDeviceAlias();
メソッド | 説明 |
---|---|
SetDeviceAlias(string key, string value) | 送信したキーと値のペアをデバイス識別子に追加します。 |
RemoveDeviceAlias(string key) | 送信したキーに該当するデバイス識別子を削除します。該当する識別子がない場合、動作はありません。 |
ClearDeviceAlias() | 全てのデバイス識別子を削除します。 |
Airbridge Unity SDKで呼び出される全てのイベントは、以下のように6つの属性値と一緒に送ることができます。
Event Category : イベント名 Required (String)
Event Action : イベントの属性値 1 (String)
Event Label : イベントの属性値 2 (String)
Event Value : イベントの属性値 3 (Double)
Event Custom Attributes : イベントのカスタムデータ (Map<String, Object>)
Event Semantic Attributes : イベントのセマンティックデータ (Map<String, Object>)
Airbridge Unity SDKでは利便性のため、以下の3つのユーザーイベントを提供しています。
Dictionary<string, string> alias = new Dictionary<string, string>();
AirbridgeUser user = new AirbridgeUser();
user.SetId(UserId);
user.SetEmail(Email);
user.SetPhoneNumber(Phone);
user.SetAlias(alias);
AirbridgeUnity.SetUser(user);
AirbridgeEvent @event = new AirbridgeEvent(Airbridge.Constants.CATEGORY.SIGN_UP);
AirbridgeUnity.TrackEvent(@event);
Dictionary<string, string> alias = new Dictionary<string, string>();
AirbridgeUser user = new AirbridgeUser();
user.SetId(UserId);
user.SetEmail(Email);
user.SetPhoneNumber(Phone);
user.SetAlias(alias);
AirbridgeUnity.SetUser(user);
AirbridgeEvent @event = new AirbridgeEvent(Airbridge.Constants.CATEGORY.SIGN_IN);
AirbridgeUnity.TrackEvent(@event);
AirbridgeEvent @event = new AirbridgeEvent(Airbridge.Constants.CATEGORY.SIGN_OUT);
AirbridgeUnity.TrackEvent(@event);
AirbridgeUnity.ExpireUser();
Airbridge Unity SDKでは利便性のために、以下のような商品クラスと一緒にEコマースイベントを提供しています。
Airbridge.Ecommerce.Product cocacola = new Airbridge.Ecommerce.Product();
cocacola.SetId("beverage_1");
cocacola.SetName("Coca Cola");
cocacola.SetPrice(1.25);
cocacola.SetCurrency("USD");
cocacola.SetQuantity(1);
cocacola.SetPosition(0);
AirbridgeEvent @event = new AirbridgeEvent(Airbridge.Constants.CATEGORY.VIEW_HOME);
AirbridgeUnity.TrackEvent(@event);
List<Airbridge.Ecommerce.Product> beverages = new List<Airbridge.Ecommerce.Product>();
Airbridge.Ecommerce.Product cocacola = new Airbridge.Ecommerce.Product();
cocacola.SetId("beverage_1");
cocacola.SetName("Coca Cola");
cocacola.SetPrice(1.25);
cocacola.SetCurrency("USD");
cocacola.SetQuantity(1);
cocacola.SetPosition(0);
beverages.Add(cocacola);
Airbridge.Ecommerce.Product fanta = new Airbridge.Ecommerce.Product();
fanta.SetId("beverage_2");
fanta.SetName("Fanta");
fanta.SetPrice(10.99);
fanta.SetCurrency("USD");
fanta.SetQuantity(1);
fanta.SetPosition(1);
beverages.Add(fanta);
AirbridgeEvent @event = new AirbridgeEvent(Airbridge.Constants.CATEGORY.VIEW_SEARCH_RESULT);
@event.SetQuery("SELECT * FROM beverages");
@event.SetProducts(beverages.ToArray());
@event.SetValue(12.24);
AirbridgeUnity.TrackEvent(@event);
商品リストを表示 (Product List)
List<Airbridge.Ecommerce.Product> beverages = new List<Airbridge.Ecommerce.Product>();
Airbridge.Ecommerce.Product cocacola = new Airbridge.Ecommerce.Product();
cocacola.SetId("beverage_1");
cocacola.SetName("Coca Cola");
cocacola.SetPrice(1.25);
cocacola.SetCurrency("USD");
cocacola.SetQuantity(1);
cocacola.SetPosition(0);
beverages.Add(cocacola);
Airbridge.Ecommerce.Product fanta = new Airbridge.Ecommerce.Product();
fanta.SetId("beverage_3");
fanta.SetName("Fanta");
fanta.SetPrice(10.99);
fanta.SetCurrency("USD");
fanta.SetQuantity(1);
fanta.SetPosition(2);
beverages.Add(fanta);
AirbridgeEvent @event = new AirbridgeEvent(Airbridge.Constants.CATEGORY.VIEW_PRODUCT_LIST);
@event.SetProductListId("beverage_list_0");
@event.SetProducts(beverages.ToArray());
@event.SetValue(12.24);
AirbridgeUnity.TrackEvent(@event);
Airbridge.Ecommerce.Product cocacola = new Airbridge.Ecommerce.Product();
cocacola.SetId("beverage_1");
cocacola.SetName("Coca Cola");
cocacola.SetPrice(1.25);
cocacola.SetCurrency("USD");
cocacola.SetQuantity(1);
cocacola.SetPosition(0);
AirbridgeEvent @event = new AirbridgeEvent(Airbridge.Constants.CATEGORY.VIEW_PRODUCT_DETAILS);
@event.SetProducts(cocacola);
AirbridgeUnity.TrackEvent(@event);
Airbridge.Ecommerce.Product cocacola = new Airbridge.Ecommerce.Product();
cocacola.SetId("beverage_1");
cocacola.SetName("Coca Cola");
cocacola.SetPrice(1.25);
cocacola.SetCurrency("USD");
cocacola.SetQuantity(1);
cocacola.SetPosition(0);
AirbridgeEvent @event = new AirbridgeEvent(Airbridge.Constants.CATEGORY.ADDED_TO_CART);
@event.SetProducts(cocacola);
@event.SetCurrency("USD");
@event.SetValue(1.25);
AirbridgeUnity.TrackEvent(@event);
List<Airbridge.Ecommerce.Product> beverages = new List<Airbridge.Ecommerce.Product>();
Airbridge.Ecommerce.Product cocacola = new Airbridge.Ecommerce.Product();
cocacola.SetId("beverage_1");
cocacola.SetName("Coca Cola");
cocacola.SetPrice(1.25);
cocacola.SetCurrency("USD");
cocacola.SetQuantity(1);
cocacola.SetPosition(0);
beverages.Add(cocacola);
Airbridge.Ecommerce.Product fanta = new Airbridge.Ecommerce.Product();
fanta.SetId("beverage_3");
fanta.SetName("Fanta");
fanta.SetPrice(10.99f);
fanta.SetCurrency("USD");
fanta.SetQuantity(1);
fanta.SetPosition(2);
beverages.Add(fanta);
AirbridgeEvent @event = new AirbridgeEvent(Airbridge.Constants.CATEGORY.ORDER_COMPLETED);
@event.SetTransactionId("transaction_123");
@event.SetProducts(beverages.ToArray());
@event.SetCurrency("USD");
@event.SetInAppPurchased(true);
@event.SetValue(1.25);
AirbridgeUnity.TrackEvent(@event);
Airbridge Unity SDKでは以下のような方法でカスタマイズされたイベントを送信することができます。
AirbridgeEvent @event = new AirbridgeEvent("category");
@event.SetAction("action");
@event.SetLabel("label");
@event.SetValue(9999);
@event.AddCustomAttribute("custom_key", "value");
@event.AddSemanticAttribute("query", "query_123");
AirbridgeUnity.TrackEvent(@event);
Semantic Attributes
を直接構成して送信するには、こちらのページを参照してください。
Airbridge Unity SDKから送信されたイベント情報はAirbridgeダッシュボード
→ Raw Data
→ App Real-time Log
タブで以下のように確認できます。
内部でのデータ分析などのため、ハッシュ(SHA256)せずにユーザーの識別子情報を送信したい場合、Unity上部のAB180
> Airbridge Settings
の User Info Hash Enabled フィールド
で設定することでユーザーのEメールや電話番号などの情報のハッシュ化(SHA256)を中止することができます。
Attention
このオプションはユーザーのEメールや電話番号など、敏感な個人情報を第3者に提供することになるため、あらかじめ内部的なセキュリティ措置が必要となります。
Airbirdge Unity SDKではUnity上部の AB180 > Airbridge Settings の Session Timeout Seconds フィールドで設定することで、特定のセッション時間内にユーザーがアプリを再起動しても同じセッションと判断し、アプリ実行イベントを再送信しないように変更することができます。
この機能はGDPRやCCPAのように、お客様から個人情報保護に関する同意を取得してデータを収集、送信するときに有効な機能です。
Unity上部の AB180
> Airbridge Settings
の Auto Start Tracking Enabled
フィールドの設定を利用し、データの収集と送信を自動的に開始するかどうかを選択することができます。
AirbridgeUnity.StartTracking();
広告主のアプリ内で複数のディープリンクの動作があり、Airbridgeでリエンゲージメントの成果を確認しにくい場合、Unity上部の AB180 > Airbridge Settings の Track Airbridge Link Only フィールドで設定することで、Airbridgeのディープリンクからの成果のみフィルタリングすることができます。
この機能を有効化すると、以下の条件付きのディープリンクからアプリが起動された場合のみ、ディープリンクの成果として計測します。
ダッシュボードに登録された形のディープリンクからアプリが起動された場合
airbridge.io のディープリンクからアプリが起動された場合
deeplink.page のディープリンクからアプリが起動された場合
airbridge_referrer クエリ情報が存在する場合
Airbridge Unity SDKでは、Unity上部の AB180
> Airbridge Settings
の Location Collection Enabled
フィールドで設定することで、ユーザーの位置情報を収集することができます。
Attention
位置情報は合法的な目的と方法で収集することが大前提となるため、この機能の使用には注意が必要です。
この機能はAndroidでのみ利用できます。また、以下のような権限が AndroidManifest.xml に含まれる必要があります。
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
FacebookのディファードアプリリンクをUnity上部の AB180 > Airbridge Settings の Facebook Deferred App Link Enabled フィールドで設定することで、Airbridge Unity SDKで一緒に取得することができます。
Attention
この機能を使うには、あらかじめFacebook SDKの設定が必要です。
参照 - https://developers.facebook.com/docs/unity/
iOS 14の政策変更によって、iOSではアプリのトラッキング許可設定(App Tracking Transparency)を通じてユーザーから同意を得てから IDFA 情報を収集できるようになりました。
Airbridge Unity SDKではUnity上部の AB180
> Airbridge Settings
の iOS Tracking Authorize Timeout Seconds
を設定することで、インストールイベントを遅延させ、IDFA
が正常にインストールイベントに含まれるように設定することができます。
アプリのアンインストールのトラッキング設定はAirbridge Unity SDK v1.9.0 以降のバージョンから利用できます。
Firebase Cloud Messagingの公式ドキュメントを参考に、アプリの基本設定を完了してください。
Firebase Cloud Messagingの設定によって生成されるプッシュトークンを、以下のガイドを参考に送信してください。
public void Start() {
Firebase.Messaging.FirebaseMessaging.TokenReceived += OnTokenReceived;
Firebase.Messaging.FirebaseMessaging.MessageReceived += OnMessageReceived;
}
public void OnTokenReceived(object sender, Firebase.Messaging.TokenReceivedEventArgs token) {
#if UNITY_ANDROID
AirbridgeUnity.RegisterPushToken(token.Token);
#endif
}
// Make sure the notification is not shown on the device if the remote message value is airbridge-uninstall-tracking.
public void OnMessageReceived(object sender, Firebase.Messaging.MessageReceivedEventArgs e) {
if (e.Message.Data.ContainsKey("airbridge-uninstall-tracking")) return;
...
}
Unity Mobile Notificationsパッケージの公式ドキュメントを参考に、パッケージをインストールしてください。
APNsのデバイストークンを以下のガイドを参考に送信してください。
void Start()
{
#if UNITY_IOS
StartCoroutine(RequestAuthorization());
#endif
}
#if UNITY_IOS
IEnumerator RequestAuthorization()
{
var authorizationOption = AuthorizationOption.Alert | AuthorizationOption.Badge;
using (var req = new AuthorizationRequest(authorizationOption, true))
{
while (!req.IsFinished)
{
yield return null;
};
if (req.Granted && req.DeviceToken != "")
{
AirbridgeUnity.RegisterPushToken(req.DeviceToken);
}
}
}
#endif
Airbridge Unity Androidはコンテンツプロバイダで自動的に初期化されます。正しい初期化作業のため、Project
> Plugins
> Android
> AndroidManifest.xml
ファイルに以下のような Xml Tag
を正確に記す必要があります。
<provider
android:authorities="${applicationId}.co.ab180.airbridge.unity.AirbridgeContentProvider"
android:name="co.ab180.airbridge.unity.AirbridgeContentProvider"
android:exported="false" />
Airbridge Unityはディープリンクを正しく呼び出すためにカスタムアクティビティを使用しています。ユーザーがすでにカスタムアクティビティを使っている場合、そのカスタムアクティビティに以下のようなコードを追加してください。
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
}
@Override
protected void onResume() {
super.onResume();
AirbridgeUnity.processDeeplinkData(getIntent());
}
Airbridge Unityが提供するAndroidマニフェストマージャーは、すでに存在する Project
> Plugins
> Android
> AndroidManifest.xml
を読み込み、Airbridge Unityが提供する Project
> Plugins
> Airbridge
> Android
> AndroidManifest.xml
を単純にマージしてくれるコンポーネントです。そのため、全てのユーザーのケースに合わせて出力するには限界があります。このようなケースでは、ユーザーが直接その AndroidManifest.xml
をマージする必要があります。
Android 11バージョンではパッケージ公開設定に関する政策が追加されました。この政策により、全てのアプリケーションはマニフェスト
の<queries>
要素を利用し、他のアプリケーションと相互作用が発生するパッケージをユーザーに告知する必要があります。
Airbridgeではこの政策を遵守するため、Android SDKモジュールにその変更事項を反映しています。 <queries>
タグをサポートするためには Gradle
は 5.6.4
以上のバージョン、そして Android Gradle Plugin
は3.6.0
以上のバージョンが必要です。
Unityのバージョンによってどの Gradle バージョンが適用されているかについてはこちらのページで確認できます。
もし、使用しているUnityの Gradle
が 5.6.4
より前のバージョン、そして/または Android Gradle Plugin
が 3.6.0
より前のバージョンの場合、以下のようなUnity設定をすることでバージョンを特定して使うことができます。
このバージョンには Gradle
5.6.4
以降のバージョンと Android Gradle Plugin
3.6.0
以降のバージョンがすでに適用されているため、追加の作業は不要です。
このカスタムオプションはUnity 2019.3 パッチ7 以降のバージョンのみ適用可能です。
1. Gradle Build Tool ページに移動し、 Gradle
5.6.4以上のバージョンをダウンロードしてください。
2. Preferences
> External Tools
に移動し、 Gradle Installed with Unity (recommended)
のチェックを解除し、ダウンロードした Gradle
ファイルの経路を以下のように設定してください。
3. Project Settings
> Player
> Android tab
> Publishing Settings
> Build
に移動し、以下のオプションを全て選択してください。
a. Custom Main Gradle Template
b. Custom Launcher Gradle Template
4. 自動生成された2つのファイルを全て以下のように変更してください。
Assets/Plugins/Android/mainTemplate.gradle
Assets/Plugins/Android/launcherTemplate.gradle
buildscript {
repositories {
google()
jcenter()
}
dependencies {
// Must be Android Gradle Plugin 3.6.0 or later. For a list of
// compatible Gradle versions refer to:
// https://developer.android.com/studio/releases/gradle-plugin
classpath 'com.android.tools.build:gradle:3.6.0'
}
}
allprojects {
repositories {
google()
jcenter()
flatDir {
dirs 'libs'
}
}
}
Gradle Build Tool ページに移動し、Gradle 5.6.4以上のバージョンをダウンロードしてください。
Preferences
> External Tools
に移動し、 Gradle Installed with Unity (recommended)
のチェックを解除し、ダウンロードした Gradle
ファイルの経路を以下のように設定してください。
Project Settings
> Player
> Android tab
> Publishing Settings
> Build
に移動し、 Custom Gradle Template
のオプションを以下のように選択してください。
4. 生成された Assets/Plugins/Android/mainTemplate.gradle
ファイルに移動し、以下のように変更してください。
buildscript {
dependencies {
// Must be Android Gradle Plugin 3.6.0 or later. For a list of
// compatible Gradle versions refer to:
// https://developer.android.com/studio/releases/gradle-plugin
classpath 'com.android.tools.build:gradle:3.6.0'
}
}
- Unity 2018.4 バージョン
このカスタムオプションはUnity 2018.4 patch 24以降のバージョンのみ適用可能です。
1. Gradle Build Tool ページに移動し、Gradle 5.6.4以上のバージョンをダウンロードしてください。
2. Build Settings
> Android
に移動し、以下のイメージのように Build System
で Gradle
を選択してください。
3. Preferences
> External Tools
に移動し、 Gradle Installed with Unity (recommended)
のチェックを解除し、ダウンロードした Gradle
ファイルの経路を以下のように設定してください。
4. Project Settings
> Player
> Android tab
> Publishing Settings
> Build
に移動し、Custom Gradle Template
のオプションを以下のように選択してください。
5. 生成された Assets/Plugins/Android/mainTemplate.gradle
ファイルに移動し、以下のように変更してください。
buildscript {
dependencies {
// Must be Android Gradle Plugin 3.6.0 or later. For a list of
// compatible Gradle versions refer to:
// https://developer.android.com/studio/releases/gradle-plugin
classpath 'com.android.tools.build:gradle:3.6.0'
}
}
Gradle
カストマイズオプションは 2018.3 より前のバージョンのUnityではサポートしていません。.
Airbridge Unity iOSはUnityが提供する IMPL_APP_CONTROLLER_SUBCLASS
を使って Custom AppController
を生成します。すでに IMPL_APP_CONTROLLER_SUBCLASS
を使って Custom AppController
を実装している場合、その Custom AppController
に以下のようなコードを追加してください。
- (BOOL) application:(UIApplication*)application
continueUserActivity:(NSUserActivity*)userActivity
restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>>* _Nullable))restorationHandler
{
[AUAppDelegate.instance application:application
continueUserActivity:userActivity
restorationHandler:restorationHandler];
return YES;
}
この作業が完了した後、既存のAirbridge Unity SDK Assets
> Plugins
> Airbridge
> iOS
> Delegate
> AUAppController.mm
ファイルを削除してください。
このページは役に立ちましたか?