Unity
Unity Plugin基本説明
この文書はプラグイン方式を使用してUnity開発の環境で既存SDK適用方式よりより簡単に適用できる方法を提供するために作成されました。
Pluginダウンロード及び設置
Unity Pluginを設置して、Unityからプロジェクトを構成する方法は以下になります。
-
GameGuard for Mobile マネージャーサーバに接続して Download > Unity Pluings を選択、最新バージョンをダウンロードします。
-
ダウンロードされた
AppGuardUnityPlugin.zipファイルを圧縮解除すれば内部に Assets フォルダーが存在し、
内部のAppGuardPostProcessBuild.cs、AppGuardUnityManager.csファイルと /Plugins フォルダーを Project/Asset/ 経路の中にコピーします。
もしコンパイルの際 Assets/ AppGuardUnityManager.cs のみ存在して /Assets/Plugins/ * フォルダーがコピーされない場合、
エラー("Error: Symbol(s) not found for a architecture arm64")が発生される可能性がありますのでご注意ください。
GameGuard for Mobile Config ファイルダウンロード及び設定
-
GameGuard for Mobileマネージャーサーバに接続して Applying Security > ダウンロード> CHAPTER 2. nProtect AppGuard CONFIGファイルダウンロード> CONFIG FILE DOWNLOAD を選択してダウンロードします。
-
ダウンロードされたConfigファイルを圧縮解除すればAppGuard Configファイルは
appguard,appguard.crt,appguard.mf,appguard1060004つのファイルで構成されています。 -
上記の4つのファイルを以下の経路にコピーします。
Copy To : Project/Assets/
AppGuardPostProcessBuild.cs 説明
AppGuardPostProcessBuild.csは Unity Editorから提供するPostProcessBuild機能を使用してUnityから生成されるXcode Projectで以下の機能を遂行します。
- GameGuard for Mobile SDK駆動に必要なビルド環境ファイルの設定作業
- GameGuard for Mobile SDK駆動に必要な環境ファイルの設定作業
- Unityから選択されたTarget SDK別
AppGuardCore.xcframeworkリンク設定作業
但し、Unityから生成されるXcode Projectの場合xcframewrokフォーマットを正常に認識していない状態です。 これはUnity自体からサポートされていない部分と判断されます。
これに対する対応策として、インカインターネットではAppGuardPostProcessBuild.csファイルを通じてUnityで選択したTargetSDKによって必要なframeworkをリンクする機能を提供しています。
GaneGuard for Mobile for iOS SDK v1.8.6 からはiOS用SDKの配信方式が既存単一frameworkから多重frameworkをサポートする
xcframework フォーマットに配信されます。
従って、GameGuard for Mobile for iOS SDKの名称がAppGuardCore.frameworkから AppGuardCore.xcframeworkに変更され、
AppGuardCore.xcframeworkはUnityの Device SDKと Simulator SDKのビルド及び実行を全てサポートします。
xcframework は多重プラットフォーム支援のためのframework配信のためにアップルが推奨するフォーマットです。
GameGuard for Mobile 1.8.6 バージョン未満及びXcode 13.3.3バージョン未満の環境を使用するお客様の場合
AppGuardCore.xcframework/ios-arm64_armv7/ AppGuardCore.frameworkを
Project/Assets/Plugins/AppGuardCore.xcframework/ios-arm64/ フォルダーにコピーして使用すれば既存と同じ 方式で使うことができます。
GameGuard for Mobile 1.8.6 バージョン以上及び Xcode 13.3.3 バージョン以上の環境を使用するお客様の場合
AppGuardCore.xcframework/ios-arm64/ AppGuardCore.frameworkを使用すれば既存と同じ方式で使うことができます。
AppGuardPostProcessBuild.csファイルを確認して、お客様の環境と異なる場合は修正が必要になる場合があります。
AppGuardUnityManager.cs 説明
構成ファイルの Assets/ フォルダーの AppGuardUnityManager.csはサーバ認証のためのUnity Pluginサンプルで、
該当 *.cs ファイル内の存在されるクラス名及びメソッド名は維持される必要があり、
以下のメソッドを使用若しくは修正して使用できます。
Setメソッド
| メソッド | 説明 |
|---|---|
public void setUserId(string userid) | セキュリティー政策為犯検知時ログサーバーに転送すユーザー識別子 (UserID)を設定します。 |
public void setUniqueClientId(string uniqueId, long retryTimeSec = 180) | サーバー認証に使用するセッションの唯一の識別子を設定します。 |
Callbackメソッド
| 構成ファイル及びフォルダー | 説明 |
|---|---|
public void onViolationCallback(string data) | セキュリティー政策為犯検関連のイベントCallbackを受けるメソッドでセキュリティー政策違反が 検知時、GameGuard for Mobileは該当メソッドを呼び出しして状態情報を転送します。 |
public void onS2AuthTryCallback(string data) | サーバ認証関連イベントのCallbackを受けるメソッドでサーバ認証が進行される場合 GameGuard for Mobileは該当メソッドを呼び出しして状態情報を転送します。 |
AppGuardUnityManager.cs はともに追加配信されるSDK又はFrameworkを使用する方法に対しるサンプルを提供します。
GameGuard for Mobile SDK Unity Plugin適用
GameGuard for Mobile初期化関数の呼び出し
GameGuard for Mobile と通信のためのアプリのコールバック関数をGameGuard for Mobileに登録するためのstart()メソッドを提供します。
該当関数の呼び出し時点は、アプリ実行時に一番最初に実行される時点に適用するために、
Unityプロジェクトの最初の場面(Scene)クラスの```Awake()````メソッドで呼び出しされなければなりません。
以下のサンプルコードのようにAwake() 関数内AppGuardUnityManager.Instance.start()を呼び出して適用ができます。
void Awake() {
AppGuardUnityManager.Instance.start();
}