getGameSignatureWithGameID:completion:
获取游戏签名
该方法用于通过指定的 gameID 向 SDK 服务端请求该游戏的访问签名(Game Signature)。该签名是后续执行游戏下载(preDownload)、预加载(preLoad)或启动(startGame)等操作的关键凭证。
方法声明
objectivec
/**
Request a game signature from the server using the specified game ID.
@param gameID The unique identifier of the game.
@param completion Called when the signature request finishes.
*/
+ (void)getGameSignatureWithGameID:(nonnull NSString *)gameID
completion:(nullable void(^)(NSString *_Nullable gameSignature, NSError *_Nullable error))completion;参数说明
| 参数名 | 类型 | 必传 | 描述 |
|---|---|---|---|
| gameID | NSString * | 是 | 游戏的唯一标识符。 |
| completion | Block | 否 | 异步获取签名后的回调。成功时返回 gameSignature 字符串;失败时返回 error。 |
运行行为
- 权限校验:SDK 内部会校验当前是否已通过用户认证(
authWithUserSignature:)。 - 网络交互:该接口会发起一次网络请求,获取该游戏针对当前环境的加密授权凭证。
- 结果复用:获取到的
gameSignature通常具有一定的有效期,建议在后续的游戏加载流程中紧接使用。
代码示例
objectivec
NSString *targetGameID = @"game_123456";
[SUDOP getGameSignatureWithGameID:targetGameID completion:^(NSString * _Nullable gameSignature, NSError * _Nullable error) {
if (error) {
NSLog(@"获取游戏签名失败: %@", error);
return;
}
NSLog(@"获取游戏签名成功: %@", gameSignature);
// 接下来可以使用 gameSignature 调用 preDownloadGameWithSignature: 或 startGameWithSignature:
}];注意事项
- 异步特性:由于涉及网络请求,严禁在主线程阻塞等待此回调。
- 时效性:
gameSignature并非永久有效。如果拿到签名后长时间未进行游戏操作,可能导致后续startGame提示签名失效。 - 错误码处理:如果
error指示无权限(如 GameID 不属于该 AppID),请检查控制台的游戏配置。