跳到主要内容
版本:1.9.x

SDK 安装及应用

AppGuard SDK 应用


AppGuard SDK 下载

为了应用 AppGuard SDK,您需要以下必备文件。
请从 AppGuard 管理器下载与 AppGuard SDK 连接所需的配置文件。

项目描述
AppGuard SDK以 static framework 格式提供的AppGuardCore.xcframework
AppGuard 配置文件AppGuard 运行所需的配置文件(appguard, appguard.crt, appguard.mf, appguard106000)

AppGuard SDK 应用

  • 将下载的AppGuardCore.xcframework文件复制到项目内部。

  • 打开 Xcode 项目,依次选择 Project > TARGETS:ProjectName > Build Phases > Link Binary With Libraries,然后点击底部的 添加[+] 按钮。

  • [选择要添加的框架和库:] 窗口中,点击底部的 [Add Other] 按钮,然后点击 [Add Files...] 按钮。

  • 在下一个界面中,选择项目内存在的AppGuardCore.xcframework文件,然后点击 [Open] 按钮。

  • 确认AppGuardCore.xcframework文件已被添加到项目内的 [Link Binary With Libraries] 中。

  • 在 Xcode 项目的 Project > TARGETS:ProjectName > Build Settings > Other Linker Flags 中添加 -lstdc++-lz 选项。


AppGuard 配置文件应用

  • 将下载的最新配置文件 4 个(appguard, appguard.crt, appguard.mf, appguard106000)复制到项目内部文件夹。

  • 打开项目,依次选择 Project > TARGETS:ProjectName > Build Phases > Copy Bundle Resources,然后点击底部的 添加[+] 按钮。

  • [选择要添加的项目:] 窗口中,点击底部的 [Add Other] 按钮。

  • 在下一个界面中,选择项目内存在的 4 个配置文件,然后点击 [Open] 按钮。

  • [选择添加这些文件的选项:] 窗口中,确保 [目标地:如有需要则复制项目] 选项被勾选为“ON”,并且 [添加文件夹:创建组] 被勾选,然后点击右下角的 [Finish] 按钮。

  • 确认这 4 个配置文件已被添加到项目内的 [Copy Bundle Resources] 中。


Objective-C

为了使用AppGuard SDK,您必须实现以下指导的必要API。

必要API实现

为了使用AppGuard SDK,您必须实现以下指导的必要API。

回调函数介绍

AppGuard SDK提供了回调函数,以便将AppGuard的操作状态、检测事件信息等数据传递给应用程序。这些回调函数通过APPGUARD_INIT API注册到AppGuard SDK。

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

回调函数必须在应用项目中实现,并在调用APPGUARD_INIT时作为参数传递。


实现和注册回调函数

回调函数应该在应用入口点的最开始处注册。 通常建议在AppDelegate源文件中实现和注册。

AppDelegate.m
/**
* 声明与AppGuard 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
*/
}
}
}

...

/**
* 注册与AppGuard SDK通信的回调函数
*
* 回调函数的注册使用APPGUARD_INIT API完成。
*
* 建议在AppDelegate的didFinishLaunchingWithOptions函数中实现APPGUARD_INIT API的使用。
*/
- (Bool)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *) launchOptions {
// 使用APPGUARD_INIT API将回调函数注册到AppGuard SDK
APPGUARD_INIT(AppGuardAppCallback);
}

如果您已经进行到这一步,那么您已经完成了使用AppGuard SDK所需的基本设置工作。请通过构建和运行您的项目来确保AppGuard SDK能够正常工作。

提示

有关AppGuard SDK提供的API的更多详细信息,请参阅AppGuard SDK API 参考

Swift

AppGuard Swift 接口说明

为了在基于Swift的项目中使用Objective-C编写的AppGuard API,必须使用Bridging Header方法。为了方便客户在Swift项目中使用Objective-C编写的AppGuard API,提供以下三个文件:

文件名描述语言
AppGuard-Bridging-Header.h用于连接Swift和Objective-C模块的Bridging HeaderObjective-C
AppGuardWarpper.hAppGuard API接口声明Objective-C
AppGuardWarpper.mmAppGuard API接口调用实现Objective-C

AppGuard Swift 接口Bridging应用

  • 将下载的AppGuard Swift接口**/appguard_swift_interfaces**文件夹中的三个文件(AppGuard-Bridging-Header.h, AppGuardWarpper.h, AppGuardWarpper.mm)复制到项目内部文件夹(Project/)。

  • 通过**[拖放(Drag & Drop)]**将复制的三个AppGuard Swift接口文件添加到项目中。

  • 点击**[选择添加这些文件的选项(Choose options for adding these files):]窗口底部的[完成(Finish)]**按钮。

  • 在**[你想配置Objective-C bridging header吗?(Would you like to configure an Objective-C bridging header?)]窗口中,点击[不创建(Don't Create)]**按钮。

  • 确认三个AppGuard Swift接口文件(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项目现在已准备好使用AppGuard API。


AppGuard Swift API 必要应用


回调函数介绍

在Swift项目中,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()函数中删除日志输出函数


回调函数注册

这是负责AppGuard运行及与AppGuard SDK通信的必要API函数。 希望您能像下面的示例代码一样,在AppDelegate.swiftapplication函数内必须调用AppGuard初始化函数APPGUARD_INITAPI,这意味着在Swift项目中注册回调函数。

AppDelegate.swift
// AppDelegate.swift

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions:
[UIApplication.LaunchOptionsKey: Any]?) -> Bool {
//* 使用APPGUARD_INIT API将回调函数注册到AppGuard SDK
let obj = AppGuardWarpper()
obj.initAppGuard()

return true
}

信息

如果您已经正确完成了上述步骤,那么您已经完成了在Swift项目中使用AppGuard所需的所有准备工作。

提示

有关AppGuard SDK提供的API的更多详细信息,请参阅AppGuard SDK API参考文档