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源文件中实现和注册。
/**
* 声明与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 Header | Objective-C |
AppGuardWarpper.h | AppGuard API接口声明 | Objective-C |
AppGuardWarpper.mm | AppGuard 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
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.swift的application函数内必须调用AppGuard初始化函数APPGUARD_INITAPI,这意味着在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参考文档。