メインコンテンツまでスキップ
バージョン: 1.10.x

SDKのインストールと適用

GameGuard for Mobile SDKの適用


GameGuard for Mobile SDKのダウンロード

GameGuard for Mobile SDKを適用するためには、以下のように必要なファイルが必要です。
GameGuard for Mobile ManagerからGameGuard for Mobile SDKと連携するために必要な設定ファイルをダウンロードしてください。

項目説明
GameGuard for Mobile SDKstatic framework形式で提供されるAppGuardCore.xcframework
GameGuard for Mobile Config FilesGameGuard for Mobile動作に必要な設定ファイル(appguard, appguard.crt, appguard.mf, appguard106000)

GameGuard for Mobile SDKの適用

  • ダウンロードしたAppGuardCore.xcframeworkファイルをプロジェクト内にコピーします。

  • Xcodeプロジェクトを開いて Project > TARGETS:ProjectName > Build Phases > Link Binary With Libraries を順に選択し、下部の 追加[+] ボタンをクリックします。

  • [Choose frameworks and libraries to add:] ウィンドウで下部の [Add Other] ボタンをクリック後 [Add Files...] ボタンをクリックします。

  • 次の画面でプロジェクト内に存在するAppGuardCore.xcframeworkファイルを選択し、[Open] ボタンをクリックします。

  • プロジェクト内の [Link Binary With Libraries]AppGuardCore.xcframeworkファイルが追加されました。

  • Xcodeプロジェクト内 Project > TARGETS:ProjectName > Build Settings > Other Linker Flags 項目に-lstdc++, -lzオプションを追加します。


GameGuard for Mobile Config Filesの適用

  • ダウンロードした最新のconfig 4つ(appguard, appguard.crt, appguard.mf, appguard106000)ファイルをプロジェクト内部フォルダにコピーします。

  • プロジェクトを開いて Project > TARGETS:ProjectName > Build Phases > Copy Bundle Resources を順に選択し、下部の 追加[+] ボタンをクリックします。

  • [Choose items to add:] ウィンドウで下部の [Add Other] ボタンをクリックします。

  • 次の画面でプロジェクト内に存在するconfigファイル4つを選択し、[Open] ボタンをクリックします。

  • [Choose options for adding these files:] ウィンドウで [Destination:Copy items if needed] "ON"にチェック、[Added folders:Create groups] にチェックした後、右下の [Finish] ボタンをクリックします。

  • プロジェクト内の [Copy Bundle Resources] に4つのconfigファイルが追加されたことを確認します。


Objective-C

GameGuard for Mobile SDKを使用するためには、以下に案内する必須APIを実装する必要があります。

必須APIの適用

GameGuard for Mobile SDKを使用するためには、以下に案内する必須APIを実装する必要があります。

コールバック関数の紹介

GameGuard for Mobile SDKは、GameGuard for Mobileの動作状態や検出イベント情報などのデータをアプリに伝達するために、以下のようなコールバック関数を提供しています。これらのコールバック関数は、APPGUARD_INIT APIを通じてGameGuard for Mobile SDKに登録します。

typedef void (*PAPPGUARDAPPCALLBACK)(int type, int code, const char *pData);
static void APPGUARD_INIT(PAPPGUARDAPPCALLBACK);
注意

コールバック関数は、適用するプロジェクト内で必ず実装し、APPGUARD_INIT 呼び出し時にパラメータとして渡される必要があります。


コールバック関数の実装と登録

コールバック関数はアプリのエントリーポイントの最初に登録される必要があります。 一般に、AppDelegateのソースファイルで実装および登録することを推奨します。

AppDelegate.m
/**
* GameGuard for Mobile SDKとの通信用コールバック関数を宣言する
* 通常、AppDelegateソースファイルの上部での実装を推奨します。
*/

#import <AppGuardCore/AppGuard.h>
#import <AppGuardCore/AppGuardDefine.h>

static void AppGuardAppCallback(int type, int code, const char* desc)
{
if(type == APPGUARD_TYPE_KILL)
{
/**
* 検出内容がポリシーによってkillオプションに設定されている場合に通知し、強制終了を要求します。
* このメッセージ通知が検出された場合、アプリは強制終了させる必要があります。
* メッセージボックスを通じて通知後、アプリを終了することを推奨します。
*/
}
else if(type == APPGUARD_TYPE_S2AUTH_CALLBACK)
{
if(code == APPGUARD_TYPE_CSAUTH_SUCESS)
{
/**
* サーバー認証処理が成功しました。
* descパラメーターで渡されるサーバー認証用IDを使用して、ゲームサーバーで再検証作業を
* 行ってください。
*
* desc: サーバー認証用ID
*/

}
else if(code == APPGUARD_TYPE_CSAUTH_FALSE)
{
/**
* サーバー認証処理が失敗しました。
* descパラメーターで渡されるサーバー認証用IDを使用して、ゲームサーバーで再検証作業を
* 行ってください。
*
* サーバー認証処理の失敗は、クライアントのネットワーク問題による失敗の可能性があるため、
* ゲームサーバーを通じて再検証作業を必ず行ってください。
*
* desc: サーバー認証用ID
*/
}
}
}

...

/**
* GameGuard for Mobile SDKとの通信用コールバック関数を登録する
*
* コールバック関数の登録はAPPGUARD_INIT APIを使用して行います。
*
* APPGUARD_INIT APIの使用は、AppDelegateのdidFinishLaunchingWithOption関数内で
* 実装することを推奨します。
*/
- (Bool)application:(UIApplication *)application didFinishLaunchingWithOption:(NSDictionary *) launchOptions {
// APPGUARD_INIT APIを使用してコールバック関数をGameGuard for Mobile SDKに登録
APPGUARD_INIT(AppGuardAppCallback);
}

この段階まで進めたら、GameGuard for Mobile SDKを使用するための基本的な作業が完了したことになります。プロジェクトのビルドと実行を通じて、GameGuard for Mobile SDKが正常に動作しているかを確認してください。

ヒント

GameGuard for Mobile SDKで提供されるAPIの詳細情報については、GameGuard for Mobile SDK API リファレンスを参照してください。

Swift

GameGuard for Mobile Swift インターフェース説明

Swiftで作成されたProjectでObjective-Cで作成されたGameGuard for Mobile APIを使用するためには、Bridging Header方式を利用する必要があります。Swift ProjectでObjective-Cで作成されたGameGuard for Mobile APIを使用するお客様の便宜を図るため、以下の3つのファイルを別途提供しています。

ファイル名説明言語
AppGuard-Bridging-Header.hSwiftとObjective-Cモジュールを連携するためのBridging HeaderObjective-C
AppGuardWarpper.hGameGuard for Mobile APIインターフェース宣言Objective-C
AppGuardWarpper.mmGameGuard for Mobile APIインターフェース呼び出し実装Objective-C

GameGuard for Mobile Swift インターフェースBridging適用

  • ダウンロードしたGameGuard for Mobile Swift インターフェース**/appguard_swift_interfaces**フォルダ内の3つ(AppGuard-Bridging-Header.h, AppGuardWarpper.h, AppGuardWarpper.mm)のファイルをプロジェクト内部のフォルダ(Project/)にコピーします。

  • プロジェクト内にコピーしたGameGuard for Mobile Swift インターフェースファイル3つを**[Drag & Drop]**でプロジェクトに追加します。

  • [Choose options for adding these files:] ウィンドウの下部にある [Finish] ボタンをクリックします。

  • [Would you like to configure an Objective-C bridging header?] ウィンドウで [Don't Create] ボタンをクリックします。

  • プロジェクト内にGameGuard for Mobile Swift インターフェースファイル3つ(AppGuard-Bridging-Header.h, AppGuardWarpper.h, AppGuardWarpper.mm)が追加されたことを確認します。

  • Project > TARGETS:プロジェクト名 > Build Settings > Swift Compiler - General > Objective-C Bridging Header 項目に $(SRCROOT)/MyProject/AppGuard-Bridging-Header.h のパス値を追加します。

備考

上記の手順を正常に完了した場合、Swift ProjectでGameGuard for Mobile APIを使用する準備が整いました。


GameGuard for Mobile Swift API 必須適用


コールバック関数の紹介

Swift Projectの場合、AppGuardWarpper.mmファイルの上部にAPPGUARDGAMECALLBACK関数が定義されています。この関数は、悪意のあるユーザーによって引き起こされる異常な振る舞いを検出し報告します。検出内容に管理者ページで設定されたセキュリティポリシーの条件により強制終了が必要な場合、その内容をアプリに通知します。

以下のサンプルコードと同様に適用することで、検出および報告内容の受け取りに対応できます。

AppGuardWarpper.mm
// AppGuardWarpper.mm

static void APPGUARDGAMECALLBACK(int type, int code, const char* desc)
{
if(type == APPGUARD_TYPE_KILL)
{
/**
* 検出内容がポリシーによってkillオプションに設定されている場合に通知し、強制終了を要求します。
* このメッセージ通知が検出された場合、アプリは強制終了させる必要があります。
* メッセージボックスを通じて通知後、アプリを終了することを推奨します。
*/
}
else if(type == APPGUARD_TYPE_S2AUTH_CALLBACK)
{
if(code == APPGUARD_TYPE_CSAUTH_SUCCESS)
{
/**
* サーバー認証処理が成功しました。
* descパラメータで提供されるサーバー認証IDを使用して、ゲームサーバーで再検証作業を
* 行ってください。
*
* desc: サーバー認証ID
*/

}
else if(code == APPGUARD_TYPE_CSAUTH_FALSE)
{
/**
* サーバー認証処理が失敗しました。
* descパラメータで提供されるサーバー認証IDを使用して、ゲームサーバーで再検証作業を
* 行ってください。
*
* サーバー認証処理の失敗はクライアントのネットワーク問題によるものかもしれませんので、
* ゲームサーバーを通じて再検証作業を必ず行ってください。
*
* desc: サーバー認証ID
*/
}
}
}

ヒント

APPGUARDGAMECALLBACK() 関数内に終了メッセージ処理ロジックを実装してください。

注意

実際のサービスリリース時には、上記のAPPGUARDGAMECALLBACK() 関数内のログ出力関数を必ず削除してください


コールバック関数の登録

GameGuard for Mobileの動作およびGameGuard for Mobile SDKとの通信を担当する必要なAPI関数です。 以下のサンプルコードと同様に、AppDelegate.swiftapplication関数内でGameGuard for Mobileの初期化関数であるAPPGUARD_INIT APIを必ず呼び出してください。これはSwift Projectでのコールバック関数の登録を意味します。

AppDelegate.swift
// AppDelegate.swift

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions:
[UIApplication.LaunchOptionsKey: Any]?) -> Bool {
//* APPGUARD_INIT APIを使用して、コールバック関数をGameGuard for Mobile SDKに登録
let obj = AppGuardWarpper()
obj.initAppGuard()

return true
}

備考

上記の作業を正常に行った場合、SwiftプロジェクトでGameGuard for Mobileを使用するための準備が整いました。

ヒント

GameGuard for Mobile SDKで提供されるAPIの詳細については、GameGuard for Mobile SDK APIリファレンスを参照してください。