更新日期:2025-12-04QuickGame(App Store Unreal Engine)客户端接入文档
本⽂档介绍如何将 QuickGameSDK集成到 Unreal Engine iOS 项⽬
SDK 提供了初始化、登录、退出登录、⽀付和上传⻆⾊信息等功能
接⼊时可参考UE Demo,配合iOS原⽣接⼊⽂档:QuickGame_AppStore客户端接⼊⽂档.pdf(在下载的SDK资源里获取此文档)
⽀持平台: iOS 16.0+
最⼩集成步骤:
详细步骤请参考下⽅"8. 集成步骤"章节
UE 代码层 ↓ JySDKManager (UE 封装层) - 类型转换: FString ↔ std::string - 委托系统: UE 委托 ↔ std::function ↓ QuickGameSDK::SDK (标准 C++ 接⼝层) - 纯 C++ 接⼝,类似其他 SDK 的使⽤⽅式 - 使⽤标准库类型(std::string, std::function) ↓ JySDKBridge (C 接⼝层) ↓ JySDKBridge.mm (Objective-C++ 桥接层) ↓ 原⽣ iOS SDK (Objective-C)
Source/QuickGameIOS/IOS/ ├── QuickGameSDK.h # 标准 C++ 接⼝头⽂件(类似其他 SDK) ├── QuickGameSDK.cpp # 标准 C++ 接⼝实现 ├── JySDKBridge.h # C 接⼝头⽂件 ├── JySDKBridge.mm # Objective-C++ 桥接实现 ├── JySDKManager.h # UE C++ 接⼝类(暴露给蓝图) ├── JySDKManager.cpp # UE C++ 接⼝实现(内部调⽤ QuickGameSDK) └── JySDKAppDelegate.mm # AppDelegate URL回调处理 JySDK/iOS/SDK/ ├── JySDK.framework/ # 主 SDK 框架 ├── jywlRes.bundle/ # SDK 资源包 ├── ATAuthSDK.framework/ # 阿⾥云⼀键登录 SDK ├── ATAuthSDK.bundle/ # ATAuthSDK 资源包 ├── YTXMonitor.framework/ # 运营商 SDK └── YTXOperators.framework/ # 运营商 SDK
6.1.1 初始化SDK
1. 获取JySDKManager实例
调⽤ Get Instance 节点
2. 初始化SDK
输⼊参数: Product Code (产品Code,从QuickGameSDK后台获取)
3. 绑定初始化回调
检查返回的 Status :
InitSuccess (2000) - 初始化成功InitFail (2001) - 初始化失败
6.1.2 登录
1. 调⽤登录
调⽤ Login 节点
2. 绑定登录回调
Message - 消息
6.1.3 退出登录
调⽤退出登录
退出登录后,SDK 会隐藏悬浮球并清除登录状态
6.1.4 ⽀付
1. 调⽤⽀付
调⽤ Pay 节点
2. 绑定⽀付回调
绑定 On Pay Complete 委托
6.1.5 上传⻆⾊信息
调⽤上传⻆⾊
调⽤ Update Role Info 节点
可选参数:
Role Level - ⻆⾊等级
6.1.6 获取⽤户信息
Is Guest - 是否为游客
⽅式⼀:使⽤ UE 封装层(⽀持蓝图)
#include "IOS/JySDKManager.h"
// 获取实例
UJySDKManager* SDKManager = UJySDKManager::GetInstance();
// 初始化
SDKManager->InitializeSDK(TEXT("YOUR_PRODUCT_CODE"));
// 绑定回调
SDKManager->OnInitComplete.AddDynamic(this, &AMyGameMode::HandleInitComplete);
SDKManager->OnLoginComplete.AddDynamic(this, &AMyGameMode::HandleLoginComplete);
SDKManager->OnPayComplete.AddDynamic(this, &AMyGameMode::HandlePayComplete);
// 登录
SDKManager->Login();
// 退出登录
⽅式⼆:使⽤标准 C++ 接⼝
#include "IOS/QuickGameSDK.h"
using namespace QuickGameSDK;
// 获取实例
SDK& sdk = SDK::GetInstance();
// 初始化(使⽤ lambda 回调)
sdk.Initialize("YOUR_PRODUCT_CODE", [](Status status) {
if (status == Status::InitSuccess) {
// 初始化成功
}
});
// 登录
sdk.Login([](Status status, const std::string& userId, const std::string& token, const
std::string& message) {
if (status == Status::Success) {
// 登录成功
}
});
// ⽀付
sdk.Pay(
API 参考
UJySDKManager 类
静态⽅法
static UJySDKManager* GetInstance() - 获取单例实例
初始化与登录
void InitializeSDK(const FString& ProductCode) - 初始化 SDK
void Login() - 调⽤登录
void Logout() - 退出登录
⽀付
void Pay(const FString& ProductId, const FString& ProductName, const FString&
ProductDesc, float Price, const FString& OrderNo, const FString& Url, const FString&
Extras) - 发起⽀付
⻆⾊信息
void UpdateRoleInfo(...) - 上传⻆⾊信息(参数⻅上⽅说明)
⽤户信息查询
FString GetUserId() - 获取⽤户 ID
"product_id",
"商品名称",
"商品描述",
1.0f,
"order_12345",
"", // URL
"", // Extras
[](Status status, const std::string& orderNo, const std::string& productId,
const std::string& transactionId, const std::string& message) {
if (status == Status::OrderSuccess) {
// ⽀付成功
}
}
);
// 上传⻆⾊
sdk.UpdateRoleInfo(
"role_123",
"⻆⾊名",
"server_id",
"服务器名",
"10", // ⻆⾊等级
);
UJySDKManager 类
7.1 静态⽅法
static UJySDKManager* GetInstance() - 获取单例实例
7.2 初始化与登录
void Logout() - 退出登录
7.3 ⽀付
Extras) - 发起⽀付
7.4 ⻆⾊信息
void UpdateRoleInfo(...) - 上传⻆⾊信息(参数⻅上⽅说明)
7.5 ⽤户信息查询
bool IsGuest() - 是否为游客账号
7.6 回调委托
7.7 状态码说明
8.1 ⽂件结构要求
确保 SDK ⽂件位于项⽬根⽬录下的 JySDK/iOS/SDK/ ⽬录:
QuickGameIOS/
└── JySDK/
└── iOS/
└── SDK/
├── JySDK.framework/ # 主 SDK 框架(必需)
├── jywlRes.bundle/ # SDK 资源包(必需)
├── ATAuthSDK.framework/ # 阿⾥云⼀键登录 SDK(必需)
├── ATAuthSDK.bundle/ # ATAuthSDK 资源包(必需)
├── YTXMonitor.framework/ # 运营商 SDK(必需)
└── YTXOperators.framework/ # 运营商 SDK(必需)
注意:所有框架和资源包都是必需的,缺少任何⼀个都可能导致编译或运⾏时错误
8.2 编译配置
主 SDK:
Framework: JySDK.framework
依赖框架:
ATAuthSDK.framework - 阿⾥云⼀键登录 SDK
系统框架依赖:
Foundation
编译时会⾃动链接这些资源和框架
8.3 Info.plist 配置(重要)
SDK 需要⽹络访问权限和第三⽅登录 URL Scheme ⽀持。需要在 Config/DefaultEngine.ini 中配置:
[/Script/IOSRuntimeSettings.IOSRuntimeSettings] BundleIdentifier=com.yourcompany.yourapp bEnableStoreKitSupport=True
重要:还需要在 Build/IOS/UBTGenerated/Info.Template.plist 或通过 Xcode ⼿动添加以下配置:
NSAppTransportSecurity(⽹络访问权限)
NSAppTransportSecurity NSAllowsArbitraryLoads
NSPhotoLibraryUsageDescription(相册权限)
NSPhotoLibraryUsageDescription 需要访问相册以保存和选择图⽚ NSPhotoLibraryAddUsageDescription 需要访问相册以保存图⽚
李先生:13880511661
QQ:48157910
赵先生:15390049857
QQ:1077535763
孙女士:13551010407
QQ:1799614139
QQ群:698731538