Skip to content

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 インターフェース

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

パラメータ名タイプ説明
gameIdintゲームID(例:2001),プロジェクト固有ID
channelIdintチャネルID ,(例:10304),チャネル固有ID
channelstringチャネルID(例:xiaomi,huawei,vivo,oppo)

LoginResult

パラメータ名タイプ説明
uidlongユーザー固有ID
channelstringチャネル(例:xiaomi,huawei,vivo,oppo)
accessTokenstringtoken,ログイン認証用トークン
channelUidstringチャネルID(非推奨、デフォルト:0)
serverAreastring地域(予約フィールド、空文字)
extendInfostring拡張フィールド(JSON文字列形式)

GoodsInfo

パラメータ名タイプ説明
itemIdstring商品id
itemNamestring商品名
itemPricestring金額(単位:分)
showTagstring通貨記号+金額
currencystring通貨種別(例:CNY, USD)
regionstringiOSのみ
symbolstringiOSのみ

HoolaiListener.cs コールバックインターフェース(実装例)

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 機能インターフェース

ログイン

c#
HoolaiSdkManager.Login();

データレポート

PlayerInfo

パラメータ名タイプ説明必須/任意
RoleIdstringキャラクター(ロール,以下:ロール)固有ID必須
RoleNamestringロール名必須
RoleLevelstringロールレベル必須
ZoneIdstringゾーン(サーバー)ID必須
ZoneNamestringゾーン名必須
ServerIdstringゾーン(サーバー)ID必須
ServerNamestringゾーン名必須
Balancestringロール残高必須
VipstringロールVIPレベル必須
PartyNamestringギルド名任意
AppVersionstringゲームバージョン任意
AppResVersionstringゲームリソースバージョン任意
ExtendActionstringカスタムレポート時のポイント名カスタムレポート時必須
RoleCreateTimestringロール作成時間任意
Phylumstringデータ計測シーケンス番号(カスタムレポート時使用)任意
ClassFieldstringカスタムイベント名任意

EventType

列挙値説明必須/任意
EnterServerサーバー入室必須
LevelUpレベルアップ必須
CreateRoleロール作成必須
CustomerActionカスタムレポート業務要件に応じて選択
c#
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_check10ゲームバージョン更新
version_check_result11【ok/fail】ゲームバージョン更新結果
hotupdate12ゲームホットアップデート
hotupdate_result13ゲームホットアップデート結果
game_init14ゲームゲーム初期化
game_init_result15ゲームゲーム初期化結果
  • 商品情報照会(iOS決済ではこのインターフェースで取得した商品データを使用必須、Android中国大陆版では不要)
c#
HoolaiSdkManager.QueryGoodsInfo();

決済(iOSは商品情報リストのフィールドを使用必須、Androidは商品情報リストを運営に提供しSDK管理画面で設定必要)

PayParams

パラメータ名タイプ説明必須/任意
itemIdString商品id必須
itemNameString商品名必須
amountint金額(単位:分)必須
countint数量(デフォルト:1)必須
callbackInfoString透過フィールド任意
notifyUrlString決済コールバックURL任意
currencyString通貨タイプ(デフォルト:CNY)必須
optMap<String, String>拡張パラメータ任意
c#
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);

ログアウト

cs
HoolaiSdkManager.Logout();

ユーザーセンター表示

cs
HoolaiSdkManager.OpenAccountCenter();

カスタマーサービス表示

cs
HoolaiSdkManager.OpenService();

終了(現在Androidのみ必要)

cs
HoolaiSdkManager.ExitGame();

注意:ゲーム終了ボタンの有無に関わらず、ゲームシーンの処理完了後、戻るボタンイベント発生時にSDKの終了インターフェースを呼び出し必須

cs
void Update()
{
    if (Input.GetKey(KeyCode.Escape))
    {
        //前のシーンに戻る、ゲーム内で戻るイベントをインターセプト不要な場合は呼び出し(終了確認ダイアログ表示またはゲームにコールバック)
        HoolaiSdkManager.ExitGame();
    }
}

共有(機能開発中)

cs
HoolaiSdkManager.ShareData(1, 1, "test");

CD-Key 引き換えキャンペーン

cs
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 機能モジュール(必須)

  1. ios-platform-account-sdk
  2. ios-platform-applelogin
  3. ios-platform-block-account
  4. ios-platform-crashsight
  5. ios-platform-pay-sdk
  6. ios-platform-analysys
  • 注意: フォルダをXcodeプロジェクトにドラッグする際は("Copy items if needed" オプションをチェックし)、メインターゲットを選択してください。スクリーンショット例:


iOS必須設定モジュールガイド

 

1.Apple Sign-In 設定

ステップ1:SDKファイルのインポート (ios-platform-applelogin) と Apple Sign-In に必要な権限の設定 (Xcode操作)

  1. ios-platform-applelogin フォルダをXcodeプロジェクトにドラッグします。
  2. Copy items if neededをチェックし,ファイルがUnity-iPhone target(メイン Target) にも追加されていることを確認します。
  3. Xcodeプロジェクトを開き、 Unity-iPhone target を選択して Signing & Capabilities タブに移動します。
  4. 左上の + Capability ボタンをクリックします。
  5. Sign in with Apple 機能を検索して追加します。

ステップ2:システム依存ライブラリの追加 (Xcode操作)

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


2.クラッシュレポート (CrashSight) 設定

ステップ1:SDKファイルのインポート (ios-platform-crashsight) と UnityFramework target へのシステム依存ライブラリの追加 (Xcode操作)

  1. ios-platform-crashsight フォルダをXcodeプロジェクトにドラッグします。
  2. Copy items if neededをチェックし、ファイルが **Unity-iPhone target(メイン Target)**にも追加されていることを確認します。
  3. Xcodeプロジェクトを開き、 UnityFramework targetを選択し、 Build Phases → Link Binary With Librariesに移動します。
  4. **+**をクリックし、以下のシステムライブラリを検索して追加します:
  • SystemConfiguration.framework
  • Security.framework
  • libz.dylib または libz.tdb
  • libc++.dylibまたはlibc++.tdb (オプション、エラーが発生しない場合は追加不要)

3.アプリ内課金 (IAP) 設定

ステップ1:SDKファイルのインポート (ios-platform-pay-sdk) と メインターゲットへの課金権限の追加 (Xcode操作)

  1. ios-platform-pay-sdk フォルダをXcodeプロジェクトにドラッグします。
  2. Copy items if neededをチェックし、ファイルが**Unity-iPhone target(メイン Target)**にも追加されていることを確認します。
  3. Xcodeプロジェクトを開き、 Unity-iPhone target(メイン Target) を選択し, Signing & Capabilities タブに移動します。
  4. 左上の + Capability ボタンをクリックします。
  5. In-App Purchase あるいは Apple Payを検索して追加します。

⚠️ 注意:課金権限は UnityFramework target ではなく メイン Target で有効にする必要があります。そうしないと課金機能が動作しません。


SDK 機能モジュール(オプション)

  1. ios-platform-appsflyer
  2. ios-platform-cloudlogproducer
  3. ios-platform-gamecenter
  4. ios-platform-qqlogin
  5. ios-platform-ttsdk
  6. ios-platform-wechatlogin
  7. ios-platform-qqshare
  8. ios-platform-wechatshare

AppsFlyer 設定
注意事項:
  • コンバージョン値のコピーを AppsFlyer に送信するために使用します
  • iOS 15が対象です
  • Appleの規定により、 変換値の送信先エンドポイントは1つのみ設定できます。
  • 受信したコンバージョン値のコピーは、AppsFlyer の postbacks copy report で確認できます。

ステップ1:SDKファイルのインポート(ios-platform-appsflyer)

  1. ios-platform-appsflyerフォルダをXcodeプロジェクトにドラッグします。
  2. Copy items if neededをチェックし、ファイルが以下両方に追加されていることを確認します:
    • UnityFramework target
    • Unity-iPhone target(メイン Target)

ステップ2:Info.plist でのコンバージョン値送信先エンドポイント設定

  1. Xcodeプロジェクトを開き、 **Unity-iPhone target(メイン Target)**を選択します。
  2. Info.plist ファイルを開き、以下のキーを追加します:
    • NSAdvertisingAttributionReportEndpoint
    • 値をhttps://appsflyer-skadnetwork.com/に設定します。

ステップ3:システム依存ライブラリの追加 (UnityFramework target)

  1. UnityFramework target → Build Phases → Link Binary With Librariesを選択します。
  2. + をクリックし、以下のライブラリを追加します:
    • AdSupport.framework
    • iAd.framework

ステップ4:OneLink サブドメインの設定 (メインTarget)

  1. Xcodeでプロジェクトをクリックします。
  2. **Unity-iPhone target(メイン Target)**を選択します。
  3. Signing & Capabilities → Associated Domainsに切り替えます。
  4. **关联域(Associated Domains)**機能を有効にします。
  5. 運営から取得したサブドメインを追加します。形式は以下の通りです:

ネットワーク測定 (CloudLogProducer) 設定

ステップ1:SDKファイルのインポート (ios-platform-cloudlogproducer)

  1. ios-platform-cloudlogproducer フォルダをXcodeプロジェクトにドラッグします。
  2. Copy items if neededをチェックし、ファイルが以下両方に追加されていることを確認します:
    • UnityFramework target
    • Unity-iPhone target(メイン Target)

ステップ2:Embed Frameworks ビルドフェーズの設定

⚠️ 注意:注意:以下のライブラリは メイン Target(Unity-iPhone) → Embed Frameworks で追加する必要があります。

  1. Unity-iPhone target → Build Phases → Embed Frameworksを選択します。
  2. + をクリックし、システムライブラリを追加します:
    • Reachability.framework


Game Center 設定

ステップ1:SDKファイルのインポート (ios-platform-gamecenter)

  1. ios-platform-cloudlogproducer フォルダをXcodeプロジェクトにドラッグします
  2. Copy items if neededをチェックし、ファイルが以下両方に追加されていることを確認します:
    • UnityFramework target
    • Unity-iPhone target(メイン Target)

ステップ2:システム依存ライブラリの追加 (UnityFramework target)

  1. UnityFramework target → Build Phases → Link Binary With Librariesを選択します
  2. + をクリックし、以下のライブラリを追加します:
    • GameKit.framework

ステップ3:開発者はAppleデベロッパーサイトでApp IDを設定し、Game Center権限を有効にした後、新しい証明書を再生成する必要があります。証明書設定権限がない場合は、運営に連絡して証明書を生成してください

ステップ4:メインターゲットを選択し、Signing & Capabilitiesに切り替えます

  1. 左上の + Capabilityをクリックします
  2. Game Center権限を検索してクリックし、追加します


バイトダンス(头条 )データ送信 設定

ステップ1:SDKファイルのインポート (ios-platform-ttsdk)

  1. ios-platform-ttsdk フォルダをXcodeプロジェクトにドラッグします
  2. Copy items if neededをチェックし、ファイルが以下両方に追加されていることを確認します:
    • UnityFramework target
    • Unity-iPhone target(メイン Target)

ステップ2:Embed Frameworksビルドフェーズの設定

⚠️ 注意:以下のライブラリは メイン Target(Unity-iPhone) → Embed Frameworks で追加する必要があります

  1. Unity-iPhone target → Build Phases → Embed Frameworksを選択します
  2. + をクリックし、システムライブラリを追加します:
    • Reachability.framework

QQ(テンセントQQ)ログイン/QQ共有 設定

ステップ1:QQログイン/QQ共有ファイルのインポート (ios-platform-qqlogin / ios-platform-qqshare)

  1. ios-platform-qqlogin / ios-platform-qqshare フォルダをXcodeプロジェクトにドラッグします
  2. Copy items if neededをチェックし、ファイルが以下両方に追加されていることを確認します:
    • UnityFramework target
    • Unity-iPhone target(メイン Target)

注意

⚠️ ⚠️ ⚠️QQログインモジュールとQQ共有モジュールを同時に導入する場合、対応するモジュールフォルダのlibsはそのうちの1つのみを導入すれば十分です

ステップ2:システム依存ライブラリの追加 (UnityFramework target)

  1. UnityFramework target → Build Phases → Link Binary With Librariesを選択します
  2. **+**をクリックし、以下のライブラリを追加します:
    • CoreGraphics.framework
    • Foundation.framework
    • libc++.tbd
    • libiconv.tbd
    • libsqlite3.tbd
    • Security.framework
    • SystemConfiguration.framework
    • WebKit.frameworkk

ステップ3:Info.plistでのホワイトリスト設定

  1. Xcodeプロジェクトを開き、 **Unity-iPhone target(メイン Target)**を選択します
  2. LSApplicationQueriesSchemes を設定し、対応するホワイトリストを追加します
xml
<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)

  1. Unity-iPhone target(メイン Target) → Info → URL Typesを選択します
    • ボタンをクリックし、新しいURL Typeを追加します:
  2. Identifier:唯一の識別子を入力(例:com.company.mygame)
  3. URL Schemes:アプリのコールバックスキームを入力(QQオープンプラットフォームで申請したkey:(tencent00000000000のような形式))

Wechatログイン/Wechat共有 設定

ステップ1:Wechatログイン/Wechat共有ファイルのインポート(ios-platform-wechatlogin / ios-platform-wechatshare)

  1. ios-platform-wechatlogin / ios-platform-wechatshareフォルダをXcodeプロジェクトにドラッグします
  2. Copy items if needed,をチェックし、ファイルが以下両方に追加されていることを確認します:
    • UnityFramework target
    • Unity-iPhone target(メイン Target)

注意

⚠️ ⚠️ ⚠️ WechatログインモジュールとWechat共有モジュールを同時に導入する場合、対応するモジュールフォルダのlibsはそのうちの1つのみを導入すれば十分です

ステップ2:Info.plistでのホワイトリスト設定

  1. Xcodeプロジェクトを開き、**Unity-iPhone target(メイン Target)**を選択します
  2. LSApplicationQueriesSchemes を設定し、対応するホワイトリストを追加します
xml
<key>LSApplicationQueriesSchemes</key>
<array>
        <string>wechat</string>
        <string>weixinULAPI</string>
        <string>weixin</string>
</array>

ステップ3:URL Typeの設定(メインTarget)

  1. Unity-iPhone target(メインTarget) → Info → URL Typesを選択します
    • ボタンをクリックし、新しいURL Typeを追加します:
  2. Identifier:唯一の識別子を入力(例:com.company.mygame)
  3. URL Schemes:アプリのコールバックスキームを入力( Wechatオープンプラットフォームで申請したkey:(wx0000000000000のような形式))

 

Hoolai Access SDK