主要API説明
AppGuard SDK iOS API Reference
文書概要
この文書はnProtect AppGuard iOS SDKのAPI使用方法を説明する文書です。
提供されるAPIリスト
| API名 | 説明 |
|---|---|
| void APPGUARD_INIT(APPGUARDAPPCALLBACK) | AppGuard 駆動を始まる関数です。 |
| void APPGUARD_SET_USER_ID(const char* userId) | ポリシー違反検出時にログ サーバーに記録されるユーザーIDを設定する関数です。 |
| void APPGUARD_SET_CERTIFICATION_ID(const char* clientId, int retryTimeout) | サーバー認証に使用されるユーザー識別キーとサーバー認証の再試行時間を設定する関数です。 |
| void APPGUARD_SET_RESERVED1(int value, int option) | AppGuard 追加専用機能を実行する関数です。 |
| void APPGUARD_SET_RESERVED2(const char* url) | サーバ認証(Server-Side Authentication) サーバのアドレスを設定する関数です。 |
| void APPGUARD_START_CUSTOMMACROMODE | Custom Macroルールとして適用され、検出を開始する関数です。 |
| void APPGUARD_STOP_CUSTOMMACROMODE | Default Macroルールとして適用され、検出を開始する関数です。 |
APPGUARD_INIT
void APPGUARD_INIT(PAPPGUARDAPPCALLBACK)
APPGUARD_INIT関数はAppGuardを初期化する関数です。従ってAppは実行する際に一番最初に呼び出すことをお勧めします。
| 媒介変数 | 説明 |
|---|---|
PAPPGUARDAPPCALLBACK | AppGuard SDKから結果を受け取るコールバック関数 |
APPGUARD_INIT 関数は以下の例のようにAppDelegate.m 又は AppDelegate.mm ファイルの
application:didFinishLaunchingWithOptions:
関数内部からの呼び出しをお勧めします。
AppDelegate.m 又は AppDelegate.mm
#import <AppGuardCore/AppGuard.h>
#import <AppGuardCore/AppGuardDefine.h>
//. AppGuard SDK から結果を受け取るコールバック関数を以下のように定義
static void APPGUARDAPPCALLBACK(int type, int code, const char* desc)
{
. . .
}
// ア プリが始める時点
- (Bool)application:(UIApplication *)application didFinishLaunchingWithOption:(NSDictionary *) launchOptions {
APPGUARD_INIT(APPGUARDAPPCALLBACK);
}
ヒント
APPGUARDAPPCALLBACK コールバック関数が正常に登録とされる場合は、AppGuard SDKが遂行した探知内訳を登録されたコールバック関数を通じて確認できます。
APPGUARDAPPCALLBACK
typedef void (*PAPPGUARDAPPCALLBACK)(int type, int code, const char *pData);
APPGUARDAPPCALLBACK 関数は、お客様で実装する必要がある関数です。 AppGuard セキュリティサービスの動作プロセスおよびセキュリティ違反に関対するイベントを受信するコールバック関数です。 該当関数はAPPGUARD_INIT 関数にパラメータで転送する必要があります。
| 媒介変数 | 説明 |
|---|---|
int type | セキュリティサービスの種類 - Event, Report, Kill |
int code | セキュリティサービスの政策種類 |
const char* desc | セキュリティ違反行為に対する詳細 |
注意
APPGUARDAPPCALLBACK 関数は必ずお客様で具現し、APPGUARD_INIT 呼び出しの際パラメータで転送される必要があります。
以下の例のように適用した場合、APPGUARDAPPCALLBACK 関数適用の際該当媒介変数を通じてAppGuard SDKから結果を受け取れます。
static void APPGUARDAPPCALLBACK(int type, int code, const char* desc) {
if( type == APPGUARD_TYPE_EVENT ) {
if( code == APPGUARD_EVENT_INITIALIZED ) {
//. エンジンの初期化が完了しました。
} else if( code == APPGUARD_EVENT_START ) {
//. エンジンが始まりました。
} else if( code == APPGUARD_EVENT_STOP ) {
//. エンジンが中止されました。
}
} else if( type == APPGUARD_TYPE_DETECT ) {
if( code == DETECT_IOS_INVALID_EXECUTION_FILE ) {
/**
* 原本実行ファイルの変調が検出されました。
* desc : 検知された情報
*/
}
. . .
else if( code == DETECT_IOS_DEVELOPMENT_BUILD ) {
/**
* AppStoreから配信されてない実行状態が検知されました。
* desc : 検知された情報
*/
}
} else if( type == APPGUARD_TYPE_ERROR ) {
if( code == APPGUARD_ERROR_APPGUARD_INIT ) {
/**
* エンジン初期化に失敗されました。
*/
}
} else if( type == APPGUARD_TYPE_S2AUTH_CALLBACK ) {
if( code == APPGUARD_TYPE_CSAUTH_SUCESS ) {
/**
* サーバ認証作業が成功されました。
* descパラメータで転送されるサーバ認証用のIDを使用して、ゲームサーバーで再検証作業を
* 実行してください。
*
* desc : サーバ認証用のID (UniqueClientID)
*/
} else if( code == APPGUARD_TYPE_CSAUTH_RETRY ) {
/**
* サーバ認証作業が進行中です。
* 無視しても大丈夫です
*/
} else if( code == APPGUARD_TYPE_CSAUTH_FALSE ) {
/**
* サーバ認証作業に失敗されました。
* descパラメータで転送されるサーバ認証用のIDを使用して、ゲームサーバーで再検証作業を
* 実行してください。
*サーバー認証作業が失敗さらた理由がクライアントのネットワーク問題による可能性がありますので、
* ゲームサーバーを通じた再検証作業を必ず進めてください。
*/
}
} else if( type == APPGUARD_TYPE_KILL ) {
/**
* 検出内容がポリシーによってkill optionに設定されている場合は通知して、強制終了を要請します。
* 該当メッセージの通知が検出されたらAPPを強制終了しなければなりません。
* 終了方式はメッセージウィンドウを通じた通知後、アプリ終了するをお勧めします。
*/
}
}
APPGUARD_SET_USER_ID
void APPGUARD_SET_USER_ID(const char* userId)
APPGUARD_SET_USER_ID 関数はAppGuardポリシー違反探知時、ログサーバーに記録するユーザーIDを設定できます。