Unity 中国大陆SDK アクセスドキュメント
説明
- ゲームは各プラットフォームごとにビルド設定が必要で、それぞれ異なる設定ファイルを使用します。必ずドキュメントを詳細にご確認ください
- 初回SDKアクセス時は、Android端末のフルスクリーン表示対応が必須です(一般的な対応方法:デフォルトでフルスクリーン表示とし、ノッチやカメラ部分がゲームUIに干渉しないようご注意ください。クラウドテスト時の評価に影響します)
- SDK関連のAPI呼び出しはすべてで実行してください
- Unityの表示サンプルは参考例です。実際のゲームUIに合わせて調整してください
- ドキュメントを詳細にご確認いただき、不明点があればグループチャットまでご連絡ください
- 本ドキュメントは随時更新されます。インターフェース変更時はグループ内で通知します。更新履歴はAndroid SDK更新/iOS SDK更新をご確認ください
- DemoダウンロードはこちらUnityDemo ダウンロード
アクセス手順()
- 手順説明:
- 中国大陸版へのアクセスとビルド作成には、まず運営に連絡してaccess.configファイルと署名ファイルを入手してください
- UnityDemoサンプルプロジェクトをダウンロードし、Demoの関連プロジェクト構造設定を参考にしてください
- 署名ファイルを使用せずにビルドを作成すると、非正規アプリケーションと表示されます。必ずまず署名ファイルを設定してください
- プロジェクトアクセス手順
- Unityプロジェクトを作成し、SDKフォルダディレクトリをScriptsファイルにインポートします
- HoolaiSdkManager.cs は機能インターフェースクラスで、以下のように呼び出し方法を実装します
- IPlatformCallbackListener.cs はコールバックインターフェースクラスで、以下のようにコールバック方法を実装します
- 異なるプラットフォーム向けにパッケージを作成する場合、それぞれ異なるファイル設定が必要です
Android 中国大陸向けビルド設定::
-access.configファイルをAssets/StreamingAssetsフォルダにコピーしてください
- AndroidフォルダをUnityプロジェクトのAssets/Plugins/Androidに配置してください
- 注意:デフォルト設定のゲーム起動クラスはsensorLandscapeです。縦画面ゲームの場合は、Assets/plugins/Android/LauncherManifest.xmlでこの値を調整してください
- また、デフォルト設定ではハードウェアアクセラレーションが有効になっています。無効にする場合は、同様にAssets/plugins/Android/LauncherManifest.xmlのhardwareAccelerated="false"に変更してください
- Unityバージョンの差異などにより、ビルドでエラーが発生した場合は、各バージョンに応じて調整してください
- UnityでのAndroid関連のカスタム設定は、File-> Build Settings-> Player Settings-> Other Settingsで設定項目にチェックを入れるだけで完了します
- 既にAndroidのカスタム設定がある場合は、提供されたAndroid関連の設定項目を既存のプロジェクト設定に統合してください
- 注意:国内では二次分包の必要性から、ビルド作成時にJava関連クラス(共通ライブラリ及びオープンソースライブラリを含む)の難読化を行わないでください。Unity関連にはこの制限はありません
iOS Unity設定
- 注意:UnityのAssetsディレクトリ内のフォルダは手動で作成する必要があります。命名規則に注意しないと、自動化スクリプトがパスを見つけられない場合があります
- UnityAppController.h、UnityAppController.mm、UnityBridge.h、UnityBridge.mm をUnityプロジェクトの Assets → Plugins → iOS フォルダに配置してください
- IOSPostBuildProcessor.cs 自動設定スクリプトをUnityプロジェクトの Assets → Plugins → Editor フォルダに配置してください(権限の説明文は各自で設定する必要があります)
IOSPostBuildProcessorでのプロジェクトに必要な権限説明文と設定
- private static readonly string BUNDLE_IDENTIFIER = "ゲームのバンドルID"; // 例:iOSプロジェクトのbundle_id
- private static readonly string ACCESS_SDK_SCHEME_SUFFIX = "channel_id"; // channel_idは運営から取得する必要があります。取得しないとSDKの初期化に失敗します
- private static readonly string TRACKING_USAGE_DESCRIPTION = ""xxxゲームは広告トラッキングのためにデバイス識別子(IDFA)へのアクセスを必要とします"; // 例:各自のゲームに合わせて説明文を変更してください
- private static readonly string PHOTO_LIBRARY_USAGE_DESCRIPTION = "xxxはスクリーンショットを写真ライブラリに保存します"; // 例:各自のゲームに合わせて説明文を変更してください
- private static readonly string PHOTO_LIBRARY_ADD_USAGE_DESCRIPTION = "xxxはフォトライブラリへのアクセスを要求します"; // 例:各自のゲームに合わせて説明文を変更してください
IPlatformCallbackListener.cs インターフェース
using System.Collections.Generic;
public interface IPlatformCallbackListener
{
void OnInitSuccess(InitResult result);
void OnInitFailed(string reason);
void OnUpdate(string data);
void OnLoginSuccess(LoginResult result);
void OnLoginFailed(string reason);
void OnRefreshUser(LoginResult result);
void OnLogout(string message);
void OnPayGoodsList(List<GoodsInfo> goodsList);
void OnPaySuccess(string message);
void OnPayFailed(string reason);
void OnShareSuccess(string message);
void OnShareFailed(string reason);
void OnCustomExit();
}InitResult
| パラメータ名 | タイプ | 説明 |
|---|---|---|
| gameId | int | ゲームID(例:2001),プロジェクト固有ID |
| channelId | int | チャネルID ,(例:10304),チャネル固有ID |
| channel | string | チャネルID(例:xiaomi,huawei,vivo,oppo) |
LoginResult
| パラメータ名 | タイプ | 説明 |
|---|---|---|
| uid | long | ユーザー固有ID |
| channel | string | チャネル(例:xiaomi,huawei,vivo,oppo) |
| accessToken | string | token,ログイン認証用トークン |
| channelUid | string | チャネルID(非推奨、デフォルト:0) |
| serverArea | string | 地域(予約フィールド、空文字) |
| extendInfo | string | 拡張フィールド(JSON文字列形式) |
GoodsInfo
| パラメータ名 | タイプ | 説明 |
|---|---|---|
| itemId | string | 商品id |
| itemName | string | 商品名 |
| itemPrice | string | 金額(単位:分) |
| showTag | string | 通貨記号+金額 |
| currency | string | 通貨種別(例:CNY, USD) |
| region | string | iOSのみ |
| symbol | string | iOSのみ |
HoolaiListener.cs コールバックインターフェース(実装例)
using System;
using System.Collections.Generic;
public class HoolaiListener : IPlatformCallbackListener
{
private static HoolaiListener _instance;
private List<GoodsInfo> _cachedGoodsList;
//商品リスト更新イベント
public event Action<List<GoodsInfo>> OnGoodsListUpdated;
public static HoolaiListener Instance
{
get
{
if (_instance == null)
{
_instance = new HoolaiListener();
}
return _instance;
}
}
//注意,PlatformCallback.SetListener(this)の登録が必要;
private HoolaiListener()
{
// 自動的にリスナーを設定
PlatformCallback.SetListener(this);
}
//初期化成功コールバック
public void OnInitSuccess(InitResult result)
{
NativeLogger.I("Game_Unity_Callback", $"OnInitSuccess GameId:{result.gameId} channel:{result.channel} channelId:{result.channelId}");
}
//初期化失敗コールバック(空文字列の場合あり、使用時は互換性処理を実施)
public void OnInitFailed(string reason)
{
NativeLogger.I("Game_Unity_Callback", $"OnInitFailed reason:{reason}");
}
//ログイン成功コールバック
public void OnLoginSuccess(LoginResult result)
{
NativeLogger.I("Game_Unity_Callback", $"OnLoginSuccess uid:{result.uid} channel:{result.channel} channelId:{result.accessToken}");
}
//ログイン失敗コールバック(空文字列の場合あり、使用時は互換性処理を実施)
public void OnLoginFailed(string reason)
{
NativeLogger.I("Game_Unity_Callback", $"OnLoginFailed reason:{reason}");
}
//ユーザー情報更新コールバック
public void OnRefreshUser(LoginResult result)
{
NativeLogger.I("Game_Unity_Callback", $"OnRefreshUser uid:{result.uid} channel:{result.channel} channelId:{result.accessToken}");
}
//ログアウトコールバック(空文字列の場合あり、使用時は互換性処理を実施)
public void OnLogout(string message)
{
NativeLogger.I("Game_Unity_Callback", $"OnLogout reason:{message}");
}
//商品リスト取得コールバック
public void OnPayGoodsList(List<GoodsInfo> goodsList)
{
_cachedGoodsList = goodsList;
OnGoodsListUpdated?.Invoke(goodsList);
NativeLogger.I("Game_Unity_Callback", $"OnPayGoodsList count:{goodsList?.Count ?? 0}");
}
//決済成功コールバック(messageが空文字列の場合あり、使用時は互換性処理を実施)
public void OnPaySuccess(string message)
{
NativeLogger.I("Game_Unity_Callback", $"OnPaySuccess message:{message}");
}
//決済失敗コールバック(reasonが空文字列の場合あり、使用時は互換性処理を実施)
public void OnPayFailed(string reason)
{
NativeLogger.I("Game_Unity_Callback", $"OnPayFailed reason:{reason}");
}
//共有成功コールバック(特別なロジックがなければ処理不要、reasonが空文字列の場合あり)
public void OnShareSuccess(string reason)
{
NativeLogger.I("Game_Unity_Callback", $"OnShareSuccess reason:{reason}");
}
//共有失敗コールバック(特別なロジックがなければ処理不要、reasonが空文字列の場合あり)
public void OnShareFailed(string reason)
{
NativeLogger.I("Game_Unity_Callback", $"OnShareFailed reason:{reason}");
}
//更新コールバック(予約インターフェース、実装を維持、処理不要)
public void OnUpdate(string data)
{
NativeLogger.I("Game_Unity_Callback", $"OnUpdate data:{data}");
}
//カスタム終了コールバック(Androidのみコールバック、ゲーム終了確認ダイアログを実装、終了ボタンでゲーム終了、SDKへの再コールバック不要)
public void OnCustomExit()
{
NativeLogger.I("Game_Unity_Callback", $"OnCustomExit");
}
}HoolaiSdkManager.cs 機能インターフェース
ログイン
HoolaiSdkManager.Login();データレポート
PlayerInfo
| パラメータ名 | タイプ | 説明 | 必須/任意 |
|---|---|---|---|
| RoleId | string | キャラクター(ロール,以下:ロール)固有ID | 必須 |
| RoleName | string | ロール名 | 必須 |
| RoleLevel | string | ロールレベル | 必須 |
| ZoneId | string | ゾーン(サーバー)ID | 必須 |
| ZoneName | string | ゾーン名 | 必須 |
| ServerId | string | ゾーン(サーバー)ID | 必須 |
| ServerName | string | ゾーン名 | 必須 |
| Balance | string | ロール残高 | 必須 |
| Vip | string | ロールVIPレベル | 必須 |
| PartyName | string | ギルド名 | 任意 |
| AppVersion | string | ゲームバージョン | 任意 |
| AppResVersion | string | ゲームリソースバージョン | 任意 |
| ExtendAction | string | カスタムレポート時のポイント名 | カスタムレポート時必須 |
| RoleCreateTime | string | ロール作成時間 | 任意 |
| Phylum | string | データ計測シーケンス番号(カスタムレポート時使用) | 任意 |
| ClassField | string | カスタムイベント名 | 任意 |
EventType
| 列挙値 | 説明 | 必須/任意 |
|---|---|---|
| EnterServer | サーバー入室 | 必須 |
| LevelUp | レベルアップ | 必須 |
| CreateRole | ロール作成 | 必須 |
| CustomerAction | カスタムレポート | 業務要件に応じて選択 |
PlayerInfo playerInfo = new PlayerInfo();
playerInfo.RoleId = "1234567"; //ロール固有ID、必須
playerInfo.RoleName = "栗子馒头"; //ロールニックネーム、必須
playerInfo.RoleLevel = "999"; //必須、"123"など、レベル概念がない場合は"1"を設定、数字文字列必須
playerInfo.ZoneId = "1"; //必須、ない場合はデフォルト値"1"を設定、数字文字列必須
playerInfo.ZoneName = "1区"; //必須、ない場合はデフォルト値(例:"1区"など)を設定
playerInfo.ServerId = "1"; //必須、ない場合はデフォルト値"1"を設定、数字文字列必須
playerInfo.ServerName = "1区"; //必須、ない場合はデフォルト値(例:"1区"など)を設定
playerInfo.Balance = "9999"; //必須、取得できない場合は""
playerInfo.Vip = "99"; //必須
playerInfo.PartyName = "栗子馒头的朋友们"; //任意
playerInfo.AppVersion = "1.0.1"; //任意
playerInfo.AppResVersion = "100"; //任意
playerInfo.ExtendAction = ""; //カスタムレポート時必須、EnterServer,LevelUp,CreateRoleレポート時は不要
playerInfo.RoleCreateTime = ""; //ロール作成時間、任意
playerInfo.Phylum = "100"; //データ計測シーケンス番号(カスタムレポート時使用)、使用済み番号を使用不可
playerInfo.ClassField = "滴滴滴答"; //カスタムイベント名
//他のデータ型のパラメータがある場合、レポート時に変換が必要(int,double,stringなど)、以下の方法で追加
playerInfo.AddExtra("intKey", 55);
playerInfo.AddExtra("longLongKey", 66786658787676);
playerInfo.AddExtra("stringKey", "Hello111");
HoolaiSdkManager.SendEvent(EventType.EnterServer, playerInfo);注意:ゲームはロードタイミングに応じて以下のカスタムレポートを実装必須。さもなければデータ統計の正確性に影響する可能性あり。CLSネットワーク検出が必要な場合はこちらで詳細ルールを確認
| レポート key | ステップ(Phylum) | 結果(ClassField) | 実装方法 | 説明 |
|---|---|---|---|---|
| version_check | 10 | ゲーム | バージョン更新 | |
| version_check_result | 11 | 【ok/fail】 | ゲーム | バージョン更新結果 |
| hotupdate | 12 | ゲーム | ホットアップデート | |
| hotupdate_result | 13 | ゲーム | ホットアップデート結果 | |
| game_init | 14 | ゲーム | ゲーム初期化 | |
| game_init_result | 15 | ゲーム | ゲーム初期化結果 |
- 商品情報照会(iOS決済ではこのインターフェースで取得した商品データを使用必須、Android中国大陆版では不要)
HoolaiSdkManager.QueryGoodsInfo();決済(iOSは商品情報リストのフィールドを使用必須、Androidは商品情報リストを運営に提供しSDK管理画面で設定必要)
PayParams
| パラメータ名 | タイプ | 説明 | 必須/任意 |
|---|---|---|---|
| itemId | String | 商品id | 必須 |
| itemName | String | 商品名 | 必須 |
| amount | int | 金額(単位:分) | 必須 |
| count | int | 数量(デフォルト:1) | 必須 |
| callbackInfo | String | 透過フィールド | 任意 |
| notifyUrl | String | 決済コールバックURL | 任意 |
| currency | String | 通貨タイプ(デフォルト:CNY) | 必須 |
| opt | Map<String, String> | 拡張パラメータ | 任意 |
PayParams payParams = new PayParams
{
Amount = 100, //金額(単位:分)
ItemId = "sword_101", //商品ID(一意且つSDK管理画面設定と一致必須)
ItemName = "钻石", //商品名
CallbackInfo = "GameInfo_11_DD", //カスタムパラメータ(コールバック時にそのまま返却、"GameInfo_11_DD"形式推奨)
NotifyUrl = "", //コールバックURL(クライアント経由での传递推奨、クライアント入力と管理画面設定が異なる場合、クライアント入力優先)
Count = 1, //購入数量(デフォルト:1)
Currency = "USD" //通貨(国内版デフォルト:CNY、海外版デフォルト:USD、通常は商品情報照会コールバックの通貨を使用)
};
//オプションパラメータ(通常設定不要)
payParams.AddOptionalParameter("test", "daily_bonus");
payParams.AddOptionalParameter("player_id", "p-98765");
HoolaiSdkManager.StartPay(payParams);ログアウト
HoolaiSdkManager.Logout();ユーザーセンター表示
HoolaiSdkManager.OpenAccountCenter();カスタマーサービス表示
HoolaiSdkManager.OpenService();終了(現在Androidのみ必要)
HoolaiSdkManager.ExitGame();注意:ゲーム終了ボタンの有無に関わらず、ゲームシーンの処理完了後、戻るボタンイベント発生時にSDKの終了インターフェースを呼び出し必須
void Update()
{
if (Input.GetKey(KeyCode.Escape))
{
//前のシーンに戻る、ゲーム内で戻るイベントをインターセプト不要な場合は呼び出し(終了確認ダイアログ表示またはゲームにコールバック)
HoolaiSdkManager.ExitGame();
}
}共有(機能開発中)
HoolaiSdkManager.ShareData(1, 1, "test");CD-Key 引き換えキャンペーン
string cdKey = "123456789"; //文字列、唯一である必要あり
HoolaiSdkManager.AccessParticipate(AccessActivityType.CD_KEY, cdKey);iOS - Xcodeプロジェクト設定
SDK 初期化ファイル
ダウンロード済みのiOSリソース内のaccess_core フォルダを、Xcodeプロジェクトディレクトリの Libraries->Plugins->iOS ディレクトリ構造下にインポートし、 access.configも同じフォルダに配置してください。
注意: フォルダをXcodeプロジェクトにドラッグする際は"Copy items if needed" オプションをチェックし)、メインターゲットを選択してください。スクリーンショット例:


上記の手順が完了したら、同じディレクトリにiOSリソース内の access_hoolai フォルダ(必須モジュール)をインポートしてください:
SDK 機能モジュール(必須)
- ios-platform-account-sdk
- ios-platform-applelogin
- ios-platform-block-account
- ios-platform-crashsight
- ios-platform-pay-sdk
- ios-platform-analysys
- 注意: フォルダをXcodeプロジェクトにドラッグする際は("Copy items if needed" オプションをチェックし)、メインターゲットを選択してください。スクリーンショット例:


iOS必須設定モジュールガイド
1.Apple Sign-In 設定
ステップ1:SDKファイルのインポート (ios-platform-applelogin) と Apple Sign-In に必要な権限の設定 (Xcode操作)
ios-platform-appleloginフォルダをXcodeプロジェクトにドラッグします。- Copy items if neededをチェックし,ファイルがUnity-iPhone target(メイン Target) にも追加されていることを確認します。
- Xcodeプロジェクトを開き、 Unity-iPhone target を選択して Signing & Capabilities タブに移動します。
- 左上の + Capability ボタンをクリックします。
- Sign in with Apple 機能を検索して追加します。

ステップ2:システム依存ライブラリの追加 (Xcode操作)
- Xcodeプロジェクトを開き、 UnityFramework target を選択します。
- Build Phases → Link Binary With Librariesに移動します。。
- **+**をクリックし、以下のシステムライブラリを検索して追加します:
- AuthenticationServices.framework

2.クラッシュレポート (CrashSight) 設定
ステップ1:SDKファイルのインポート (ios-platform-crashsight) と UnityFramework target へのシステム依存ライブラリの追加 (Xcode操作)
ios-platform-crashsightフォルダをXcodeプロジェクトにドラッグします。- Copy items if neededをチェックし、ファイルが **Unity-iPhone target(メイン Target)**にも追加されていることを確認します。
- Xcodeプロジェクトを開き、 UnityFramework targetを選択し、 Build Phases → Link Binary With Librariesに移動します。
- **+**をクリックし、以下のシステムライブラリを検索して追加します:
- SystemConfiguration.framework
- Security.framework
- libz.dylib または libz.tdb
- libc++.dylibまたはlibc++.tdb (オプション、エラーが発生しない場合は追加不要)
3.アプリ内課金 (IAP) 設定
ステップ1:SDKファイルのインポート (ios-platform-pay-sdk) と メインターゲットへの課金権限の追加 (Xcode操作)
ios-platform-pay-sdkフォルダをXcodeプロジェクトにドラッグします。- Copy items if neededをチェックし、ファイルが**Unity-iPhone target(メイン Target)**にも追加されていることを確認します。
- Xcodeプロジェクトを開き、 Unity-iPhone target(メイン Target) を選択し, Signing & Capabilities タブに移動します。
- 左上の + Capability ボタンをクリックします。
- In-App Purchase あるいは Apple Payを検索して追加します。
⚠️ 注意:課金権限は UnityFramework target ではなく メイン Target で有効にする必要があります。そうしないと課金機能が動作しません。
SDK 機能モジュール(オプション)
- ios-platform-appsflyer
- ios-platform-cloudlogproducer
- ios-platform-gamecenter
- ios-platform-qqlogin
- ios-platform-ttsdk
- ios-platform-wechatlogin
- ios-platform-qqshare
- ios-platform-wechatshare
AppsFlyer 設定
- コンバージョン値のコピーを AppsFlyer に送信するために使用します
- iOS 15が対象です
- Appleの規定により、 変換値の送信先エンドポイントは1つのみ設定できます。
- 受信したコンバージョン値のコピーは、AppsFlyer の postbacks copy report で確認できます。
ステップ1:SDKファイルのインポート(ios-platform-appsflyer)
ios-platform-appsflyerフォルダをXcodeプロジェクトにドラッグします。- Copy items if neededをチェックし、ファイルが以下両方に追加されていることを確認します:
- UnityFramework target
- Unity-iPhone target(メイン Target)
ステップ2:Info.plist でのコンバージョン値送信先エンドポイント設定
- Xcodeプロジェクトを開き、 **Unity-iPhone target(メイン Target)**を選択します。
- Info.plist ファイルを開き、以下のキーを追加します:
- NSAdvertisingAttributionReportEndpoint
- 値を
https://appsflyer-skadnetwork.com/に設定します。
ステップ3:システム依存ライブラリの追加 (UnityFramework target)
- UnityFramework target → Build Phases → Link Binary With Librariesを選択します。
- + をクリックし、以下のライブラリを追加します:
- AdSupport.framework
- iAd.framework
ステップ4:OneLink サブドメインの設定 (メインTarget)
- Xcodeでプロジェクトをクリックします。
- **Unity-iPhone target(メイン Target)**を選択します。
- Signing & Capabilities → Associated Domainsに切り替えます。
- **关联域(Associated Domains)**機能を有効にします。
- 運営から取得したサブドメインを追加します。形式は以下の通りです:
ネットワーク測定 (CloudLogProducer) 設定
ステップ1:SDKファイルのインポート (ios-platform-cloudlogproducer)
ios-platform-cloudlogproducerフォルダをXcodeプロジェクトにドラッグします。- Copy items if neededをチェックし、ファイルが以下両方に追加されていることを確認します:
- UnityFramework target
- Unity-iPhone target(メイン Target)
ステップ2:Embed Frameworks ビルドフェーズの設定
⚠️ 注意:注意:以下のライブラリは メイン Target(Unity-iPhone) → Embed Frameworks で追加する必要があります。
- Unity-iPhone target → Build Phases → Embed Frameworksを選択します。
- + をクリックし、システムライブラリを追加します:
- Reachability.framework

Game Center 設定
ステップ1:SDKファイルのインポート (ios-platform-gamecenter)
ios-platform-cloudlogproducerフォルダをXcodeプロジェクトにドラッグします- Copy items if neededをチェックし、ファイルが以下両方に追加されていることを確認します:
- UnityFramework target
- Unity-iPhone target(メイン Target)
ステップ2:システム依存ライブラリの追加 (UnityFramework target)
- UnityFramework target → Build Phases → Link Binary With Librariesを選択します
- + をクリックし、以下のライブラリを追加します:
- GameKit.framework
ステップ3:開発者はAppleデベロッパーサイトでApp IDを設定し、Game Center権限を有効にした後、新しい証明書を再生成する必要があります。証明書設定権限がない場合は、運営に連絡して証明書を生成してください

ステップ4:メインターゲットを選択し、Signing & Capabilitiesに切り替えます
- 左上の + Capabilityをクリックします
- Game Center権限を検索してクリックし、追加します

バイトダンス(头条 )データ送信 設定
ステップ1:SDKファイルのインポート (ios-platform-ttsdk)
ios-platform-ttsdkフォルダをXcodeプロジェクトにドラッグします- Copy items if neededをチェックし、ファイルが以下両方に追加されていることを確認します:
- UnityFramework target
- Unity-iPhone target(メイン Target)
ステップ2:Embed Frameworksビルドフェーズの設定
⚠️ 注意:以下のライブラリは メイン Target(Unity-iPhone) → Embed Frameworks で追加する必要があります
- Unity-iPhone target → Build Phases → Embed Frameworksを選択します
- + をクリックし、システムライブラリを追加します:
- Reachability.framework

- Reachability.framework
QQ(テンセントQQ)ログイン/QQ共有 設定
ステップ1:QQログイン/QQ共有ファイルのインポート (ios-platform-qqlogin / ios-platform-qqshare)
ios-platform-qqlogin / ios-platform-qqshareフォルダをXcodeプロジェクトにドラッグします- Copy items if neededをチェックし、ファイルが以下両方に追加されていることを確認します:
- UnityFramework target
- Unity-iPhone target(メイン Target)
注意
⚠️ ⚠️ ⚠️QQログインモジュールとQQ共有モジュールを同時に導入する場合、対応するモジュールフォルダのlibsはそのうちの1つのみを導入すれば十分です
ステップ2:システム依存ライブラリの追加 (UnityFramework target)
- UnityFramework target → Build Phases → Link Binary With Librariesを選択します
- **+**をクリックし、以下のライブラリを追加します:
- CoreGraphics.framework
- Foundation.framework
- libc++.tbd
- libiconv.tbd
- libsqlite3.tbd
- Security.framework
- SystemConfiguration.framework
- WebKit.frameworkk
ステップ3:Info.plistでのホワイトリスト設定
- Xcodeプロジェクトを開き、 **Unity-iPhone target(メイン Target)**を選択します
- LSApplicationQueriesSchemes を設定し、対応するホワイトリストを追加します
<key>LSApplicationQueriesSchemes</key>
<array>
<string>tim</string>
<string>mqq</string>
<string>mqqapi</string>
<string>mqqbrowser</string>
<string>mttbrowser</string>
<string>mqqOpensdkSSoLogin</string>
<string>mqqopensdkapiV2</string>
<string>mqqopensdkapiV4</string>
<string>mqzone</string>
<string>mqzoneopensdk</string>
<string>mqzoneopensdkapi</string>
<string>mqzoneopensdkapi19</string>
<string>mqzoneopensdkapiV2</string>
<string>mqqapiwallet</string>
<string>mqqopensdkfriend</string>
<string>mqqopensdkavatar</string>
<string>mqqopensdkminiapp</string>
<string>mqqopensdkdataline</string>
<string>mqqgamebindinggroup</string>
<string>mqqopensdkgrouptribeshare</string>
<string>tencentapi.qq.reqContent</string>
<string>tencentapi.qzone.reqContent</string>
<string>mqqthirdappgroup</string>
<string>mqqopensdklaunchminiapp</string>
<string>mqqopensdkproxylogin</string>
<string>mqqopensdknopasteboard</string>
</array>ステップ4:URL Typeの設定(メインTarget)
- Unity-iPhone target(メイン Target) → Info → URL Typesを選択します
- ボタンをクリックし、新しいURL Typeを追加します:
- Identifier:唯一の識別子を入力(例:com.company.mygame)
- URL Schemes:アプリのコールバックスキームを入力(QQオープンプラットフォームで申請したkey:(tencent00000000000のような形式))
Wechatログイン/Wechat共有 設定
ステップ1:Wechatログイン/Wechat共有ファイルのインポート(ios-platform-wechatlogin / ios-platform-wechatshare)
ios-platform-wechatlogin / ios-platform-wechatshareフォルダをXcodeプロジェクトにドラッグします- Copy items if needed,をチェックし、ファイルが以下両方に追加されていることを確認します:
- UnityFramework target
- Unity-iPhone target(メイン Target)
注意
⚠️ ⚠️ ⚠️ WechatログインモジュールとWechat共有モジュールを同時に導入する場合、対応するモジュールフォルダのlibsはそのうちの1つのみを導入すれば十分です
ステップ2:Info.plistでのホワイトリスト設定
- Xcodeプロジェクトを開き、**Unity-iPhone target(メイン Target)**を選択します
- LSApplicationQueriesSchemes を設定し、対応するホワイトリストを追加します
<key>LSApplicationQueriesSchemes</key>
<array>
<string>wechat</string>
<string>weixinULAPI</string>
<string>weixin</string>
</array>ステップ3:URL Typeの設定(メインTarget)
- Unity-iPhone target(メインTarget) → Info → URL Typesを選択します
- ボタンをクリックし、新しいURL Typeを追加します:
- Identifier:唯一の識別子を入力(例:com.company.mygame)
- URL Schemes:アプリのコールバックスキームを入力( Wechatオープンプラットフォームで申請したkey:(wx0000000000000のような形式))
