Skip to content

preStartGameWithPkgPath:options:completion:

预启动游戏(通过本地文件路径)

该方法允许开发者通过指定的本地文件路径(如 .zip 包)开启预启动流程。它集成了文件校验、解压、环境初始化以及游戏脚本的后台执行。通过此接口,即使游戏资源不在 SDK 默认缓存目录中,也能实现游戏的后台预热。


方法声明

objectivec
/**
 Pre-start game using a local file path.
 @param pkgPath the local path.
 @param options Configuration object containing the local path and verification metadata.
 @param completion Called when the pre-start operation finishes.
 @return An instance of id<SUDOPGameTask> to track the pre-start task.
 */
+ (id<SUDOPGameTask>)preStartGameWithPkgPath:(NSString *)pkgPath
                                     options:(SUDOPGamePackageOptions *)options
                                  completion:(nullable SUDOPGameOperationCompletion)completion;

注意:此处参数应为 SUDOPGamePackageOptions * 类型,用于传递路径及版本校验信息。


参数说明

参数名类型必传描述
pkgPathNSString *本地绝对路径 pkgPath
optionsSUDOPGamePackageOptions *包含本地绝对路径 pathappGameID、版本号及 fid 校验信息的配置对象。
completionSUDOPGameOperationCompletion异步预启动完成后的回调。成功后,游戏实例已在后台运行。

返回值

返回一个遵循 id<SUDOPGameTask> 协议的对象,开发者可用于追踪任务状态或在必要时强制中断预热逻辑。


运行行为

  1. 资源处理:SDK 检查路径有效性,并根据 options.fid 校验包体。校验通过后,如果尚未解压,则执行解压操作。
  2. 静默执行:启动游戏运行时(Runtime),加载首屏所需的脚本、纹理和配置文件。
  3. 就绪状态:游戏逻辑运行至“可显示”阶段(通常是首屏渲染指令已准备好),触发 completion 回调。

代码示例

objc
SUDOPGamePackageOptions *options = [[SUDOPGamePackageOptions alloc] init];
NSString * pkgPath = @"/path/to/your/game_package.zip";
options.appGameID = @"game_888";
options.version = @"1.2.0";
options.fid = @"checksum_value";

[SUDOP preStartGameWithFilePath:pkgPath options:options completion:];

注意事项

  • 路径权限:请确保 iOS 应用对 pkgPath 指向的目录具有读取权限(通常建议放在 DocumentsLibrary/Caches 下)。
  • 资源清理:若预启动后长时间未调用 startGame,游戏实例会持续占用 CPU 和内存。建议在用户放弃进入游戏时,通过 Task 或 uninitialize 释放资源。
  • 版本一致性appGameID 必须与包内的配置文件一致,否则可能导致启动失败。