Skip to content

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;

参数说明

参数名类型必传描述
gameIDNSString *游戏的唯一标识符。
completionBlock异步获取签名后的回调。成功时返回 gameSignature 字符串;失败时返回 error

运行行为

  1. 权限校验:SDK 内部会校验当前是否已通过用户认证(authWithUserSignature:)。
  2. 网络交互:该接口会发起一次网络请求,获取该游戏针对当前环境的加密授权凭证。
  3. 结果复用:获取到的 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),请检查控制台的游戏配置。