/// <summary> /// 解析并保存远端请求的补丁清单 /// </summary> private bool ParseAndSaveRemotePatchManifest(int updateResourceVersion, string content) { try { var remotePatchManifest = PatchManifest.Deserialize(content); _impl.SetLocalPatchManifest(remotePatchManifest); YooLogger.Log("Save remote patch manifest file."); string savePath = PathHelper.MakePersistentLoadPath(YooAssetSettingsData.GetPatchManifestFileName(updateResourceVersion)); PatchManifest.Serialize(savePath, remotePatchManifest); return(true); } catch (Exception e) { YooLogger.Error(e.ToString()); return(false); } }
internal override void Update() { if (_steps == ESteps.None || _steps == ESteps.Done) { return; } if (_steps == ESteps.InitCache) { // 每次启动时比对APP版本号是否一致 CacheData cacheData = CacheData.LoadCache(); if (cacheData.CacheAppVersion != Application.version) { YooLogger.Warning($"Cache is dirty ! Cache application version is {cacheData.CacheAppVersion}, Current application version is {Application.version}"); // 注意:在覆盖安装的时候,会保留APP沙盒目录,可以选择清空缓存目录 if (_impl.ClearCacheWhenDirty) { YooLogger.Warning("Clear cache files."); SandboxHelper.DeleteCacheFolder(); } // 更新缓存文件 CacheData.UpdateCache(); } _steps = ESteps.Update; } if (_steps == ESteps.Update) { _appManifestLoader.Update(); Progress = _appManifestLoader.Progress(); if (_appManifestLoader.IsDone() == false) { return; } if (_appManifestLoader.Result == null) { _steps = ESteps.Done; Status = EOperationStatus.Failed; Error = _appManifestLoader.Error; } else { _steps = ESteps.Done; Status = EOperationStatus.Succeed; _impl.SetAppPatchManifest(_appManifestLoader.Result); _impl.SetLocalPatchManifest(_appManifestLoader.Result); } } }