/// <summary> /// 异步初始化 /// </summary> public IEnumerator InitializeAsync(bool simulationOnEditor) { if (simulationOnEditor) { yield break; } // 解析APP里的补丁清单 string filePath = AssetPathHelper.MakeStreamingLoadPath(PatchDefine.PatchManifestFileName); string url = AssetPathHelper.ConvertToWWWPath(filePath); WebGetRequest downloader = new WebGetRequest(url); downloader.DownLoad(); yield return(downloader); if (downloader.HasError()) { downloader.ReportError(); downloader.Dispose(); throw new System.Exception($"Fatal error : Failed download file : {url}"); } _patchManifest = PatchManifest.Deserialize(downloader.GetText()); downloader.Dispose(); }
/// <summary> /// 异步初始化 /// </summary> public IEnumerator InitializeAsync(bool simulationOnEditor) { if (simulationOnEditor) { yield break; } // 解析APP里的补丁清单 string filePath = AssetPathHelper.MakeStreamingLoadPath(PatchDefine.PatchManifestBytesFileName); string url = AssetPathHelper.ConvertToWWWPath(filePath); WebDataRequest downloader = new WebDataRequest(url); yield return(downloader.DownLoad()); if (downloader.States == EWebRequestStates.Success) { _patchManifest = new PatchManifest(); _patchManifest.Parse(downloader.GetData()); downloader.Dispose(); } else { throw new System.Exception($"Fatal error : Failed download file : {url}"); } }
private IEnumerator DownLoad() { // 解析APP里的补丁清单 string filePath = AssetPathHelper.MakeStreamingLoadPath(PatchDefine.PatchManifestFileName); string url = AssetPathHelper.ConvertToWWWPath(filePath); WebDataRequest downloader = new WebDataRequest(url); yield return(downloader.DownLoad()); if (downloader.States == EWebRequestStates.Success) { PatchHelper.Log(ELogLevel.Log, "Parse app patch manifest."); _patcher.ParseAppPatchManifest(downloader.GetText()); downloader.Dispose(); _patcher.SwitchNext(); } else { throw new System.Exception($"Fatal error : Failed download file : {url}"); } }
private IEnumerator DownLoad(ProcedureSystem system) { // 解析APP里的补丁文件 string filePath = AssetPathHelper.MakeStreamingLoadPath(PatchDefine.StrPatchFileName); string url = AssetPathHelper.ConvertToWWWPath(filePath); WebDataRequest downloader = new WebDataRequest(url); yield return(downloader.DownLoad()); if (downloader.States == EWebRequestStates.Succeed) { PatchManager.Log(ELogType.Log, "Parse app patch file."); PatchManager.Instance.ParseAppPatchFile(downloader.GetText()); downloader.Dispose(); system.SwitchNext(); } else { throw new System.Exception($"Fatal error : Failed download file : {url}"); } }
/// <summary> /// 异步初始化 /// </summary> public IEnumerator InitializeAync(PatchManagerImpl patcher) { // 处理沙盒被污染 ProcessSandboxDirty(); // 分析APP内的补丁清单 { string filePath = AssetPathHelper.MakeStreamingLoadPath(PatchDefine.PatchManifestBytesFileName); string url = AssetPathHelper.ConvertToWWWPath(filePath); WebDataRequest downloader = new WebDataRequest(url); yield return(downloader.DownLoad()); if (downloader.States == EWebRequestStates.Success) { MotionLog.Log("Parse app patch manifest."); patcher.ParseAppPatchManifest(downloader.GetData()); downloader.Dispose(); } else { throw new System.Exception($"Fatal error : Failed download file : {url}"); } } // 分析沙盒内的补丁清单 if (PatchHelper.CheckSandboxPatchManifestFileExist()) { string filePath = AssetPathHelper.MakePersistentLoadPath(PatchDefine.PatchManifestBytesFileName); byte[] fileData = File.ReadAllBytes(filePath); MotionLog.Log($"Parse sandbox patch file."); patcher.ParseSandboxPatchManifest(fileData); } else { patcher.ParseSandboxPatchManifest(patcher.AppPatchManifest); } }
/// <summary> /// 异步初始化 /// </summary> public IEnumerator InitializeAsync() { MotionLog.Log($"Beginning to initialize patch manager."); // 加载缓存 _cache = PatchCache.LoadCache(); // 检测沙盒被污染 // 注意:在覆盖安装的时候,会保留沙盒目录里的文件,所以需要强制清空 { // 如果是首次打开,记录APP版本号 if (PatchHelper.CheckSandboxCacheFileExist() == false) { _cache.CacheAppVersion = Application.version; _cache.SaveCache(); } else { // 每次启动时比对APP版本号是否一致 if (_cache.CacheAppVersion != Application.version) { MotionLog.Warning($"Cache is dirty ! Cache version is {_cache.CacheAppVersion}, APP version is {Application.version}"); ClearCache(); // 重新写入最新的APP版本号 _cache.CacheAppVersion = Application.version; _cache.SaveCache(); } } } // 加载APP内的补丁清单 MotionLog.Log($"Load app patch manifest."); { string filePath = AssetPathHelper.MakeStreamingLoadPath(PatchDefine.PatchManifestFileName); string url = AssetPathHelper.ConvertToWWWPath(filePath); WebGetRequest downloader = new WebGetRequest(url); downloader.DownLoad(); yield return(downloader); if (downloader.HasError()) { downloader.ReportError(); downloader.Dispose(); throw new System.Exception($"Fatal error : Failed download file : {url}"); } // 解析补丁清单 string jsonData = downloader.GetText(); _appPatchManifest = PatchManifest.Deserialize(jsonData); downloader.Dispose(); } // 加载沙盒内的补丁清单 MotionLog.Log($"Load sandbox patch manifest."); if (PatchHelper.CheckSandboxPatchManifestFileExist()) { string filePath = AssetPathHelper.MakePersistentLoadPath(PatchDefine.PatchManifestFileName); string jsonData = File.ReadAllText(filePath); _localPatchManifest = PatchManifest.Deserialize(jsonData); } else { _localPatchManifest = _appPatchManifest; } }