preDownloadGameWithSignature:completion:
预下载游戏(通过游戏签名)
该方法使用预先获取的游戏签名(Game Signature)开启游戏包的异步下载任务。相比于直接使用 Game ID,该接口适用于开发者已在服务端或其他环节提前换取好签名的情况,省去了内部再次请求签名的步骤,能够更快地启动下载流程。
方法声明
objectivec
/**
Pre-download game package using a game signature.
@param gameSignature The signature used to authorize the game download.
@param completion Called when the download task finishes or fails.
@return An instance of id<SUDOPGameTask> to control or track the task.
*/
+ (id<SUDOPGameTask>)preDownloadGameWithSignature:(nonnull NSString *)gameSignature
completion:(nullable SUDOPCompletion)completion;参数说明
| 参数名 | 类型 | 必传 | 描述 |
|---|---|---|---|
| gameSignature | NSString * | 是 | 游戏的授权签名字符串。 |
| completion | SUDOPCompletion | 否 | 任务结束回调。成功时 error 为 nil;失败时 error 包含具体原因。 |
返回值
返回一个遵循 id<SUDOPGameTask> 协议的对象。开发者可以通过该对象获取任务状态或调用 cancel 中止下载。
运行行为
- 直接授权:SDK 解析签名中的权限信息,直接建立下载通道。
- 文件校验:下载过程中会根据签名中包含的元数据(如 FID)实时校验包体的完整性。
- 缓存复用:如果本地已存在该签名对应版本的游戏包且校验通过,任务将直接触发完成回调(进度跳至 100%)。
代码示例
objc
// 假设已通过 getGameSignatureWithGameID 拿到 signature
NSString *signature = @"your_game_signature_string";
[SUDOP preDownloadGameWithSignature:signature completion:nil];注意事项
- 有效性校验:如果传入的
gameSignature已过期或格式非法,任务会立即通过completion返回错误,错误码通常与认证失败相关。 - 版本锁定:签名通常绑定了特定的游戏版本。如果需要更新游戏,请确保获取最新的签名后再调用此接口。
- 并发限制:同一时间内,SDK 可能会对同一资源的下载进行合并处理,避免重复占用带宽。