void IFsmNode.OnEnter() { PatchEventDispatcher.SendPatchStatesChangeMsg(EPatchStates.CheckSandboxDirty); string appVersion = PatchManager.Instance.GetAPPVersion(); string filePath = PatchHelper.GetSandboxStaticFilePath(); // 记录APP版本信息到静态文件 if (PatchHelper.CheckSandboxStaticFileExist() == false) { PatchHelper.Log(ELogLevel.Log, $"Create sandbox static file : {filePath}"); PatchHelper.CreateFile(filePath, appVersion); _patcher.SwitchNext(); return; } // 每次启动时比对APP版本号是否一致 string recordVersion = PatchHelper.ReadFile(filePath); // 如果记录的版本号不一致 if (recordVersion != appVersion) { PatchHelper.Log(ELogLevel.Warning, $"Sandbox is dirty, Record version is {recordVersion}, APP version is {appVersion}"); PatchHelper.Log(ELogLevel.Warning, "Clear all sandbox files."); PatchHelper.ClearSandbox(); _patcher.SwitchLast(); } else { _patcher.SwitchNext(); } }
void IFsmNode.OnEnter() { PatchEventDispatcher.SendPatchStatesChangeMsg(EPatchStates.ParseSandboxPatchManifest); // 读取并解析沙盒内的补丁清单 if (PatchHelper.CheckSandboxPatchManifestFileExist()) { string filePath = AssetPathHelper.MakePersistentLoadPath(PatchDefine.PatchManifestFileName); string fileContent = PatchHelper.ReadFile(filePath); PatchHelper.Log(ELogLevel.Log, $"Parse sandbox patch file."); _patcher.ParseSandboxPatchManifest(fileContent); } else { _patcher.ParseSandboxPatchManifest(_patcher.AppPatchManifest); } _patcher.SwitchNext(); }