/// <summary> /// UpLoadCDN /// </summary> /// <param name="buildTargetGroup"></param> private static void UpLoadCDN(BuildTargetGroup buildTargetGroup) { var beginTime = System.DateTime.Now; var isMotherPkg = ContainsEnvOption(EnvOption.MOTHER_PKG); var isHotUpdateBuild = ContainsEnvOption(EnvOption.HOT_UPDATE_BUILD); if (isHotUpdateBuild || isMotherPkg) { //upload appversion.json var CDN_AppVersionPath = string.Format(CDNVersionControlUrl, ColaEditHelper.GetPlatformName(), "app_version.json"); FileHelper.CopyFile(Resource_AppVersionPath, CDN_AppVersionPath, true); //upload version.txt and assets var reltaRoot = ColaEditHelper.CreateAssetBundleDirectory(); var updateFilePath = reltaRoot + "/updates.txt"; using (var sr = new StreamReader(updateFilePath)) { var content = sr.ReadLine(); while (null != content) { var reltaPath = reltaRoot + "/" + content; var destPath = CDNResourceUrl + content; FileHelper.CopyFile(reltaPath, destPath, true); content = sr.ReadLine(); } } FileHelper.CopyFile(reltaRoot + "/versions.txt", CDNResourceUrl + "versions.txt", true); } Debug.Log("=================UpLoadCDN Time================ : " + (System.DateTime.Now - beginTime).TotalSeconds); }
/// <summary> /// 自动处理AppVersion /// </summary> private static void BuildAppVersion() { var isMotherPkg = ContainsEnvOption(EnvOption.MOTHER_PKG); var isHotUpdateBuild = ContainsEnvOption(EnvOption.HOT_UPDATE_BUILD); var appAsset = ColaEditHelper.GetScriptableObjectAsset <AppVersion>(AppVersionPath); if (isHotUpdateBuild) { appAsset.HotUpdateVersion += 1; } else if (isMotherPkg) { appAsset.HotUpdateVersion = 0; appAsset.StoreVersion += 1; appAsset.BuildVersion = 0; } if (!isMotherPkg && !isHotUpdateBuild) { appAsset.BuildVersion += 1; } appAsset.OnValueChanged(); EditorUtility.SetDirty(appAsset); AssetDatabase.SaveAssets(); if (null != appAsset) { var jsonStr = JsonMapper.ToJson(appAsset); var cachePath = ColaEditHelper.TempCachePath + "/" + AppVersionFileName; FileHelper.DeleteFile(cachePath); FileHelper.WriteString(cachePath, jsonStr); if (!isHotUpdateBuild) { FileHelper.CopyFile(cachePath, Resource_AppVersionPath, true); PlayerSettings.bundleVersion = appAsset.Version; } } if (!isHotUpdateBuild) { FileHelper.DeleteFile(Resource_VersionPath); var outputPath = ColaEditHelper.CreateAssetBundleDirectory(); var versionsTxt = outputPath + "/versions.txt"; FileHelper.CopyFile(versionsTxt, Resource_VersionPath, true); } AssetDatabase.Refresh(); AssetDatabase.SaveAssets(); }
/// <summary> /// UpLoadCDN /// </summary> /// <param name="buildTargetGroup"></param> private static void UpLoadCDN(BuildTargetGroup buildTargetGroup) { var beginTime = System.DateTime.Now; var isMotherPkg = ContainsEnvOption(EnvOption.MOTHER_PKG); var isHotUpdateBuild = ContainsEnvOption(EnvOption.HOT_UPDATE_BUILD); if (isHotUpdateBuild || isMotherPkg) { //上传远端CDN if (ContainsEnvOption(EnvOption.REMOTE_CDN)) { var host = GetEnvironmentVariable(EnvOption.CDN_URL); var userName = GetEnvironmentVariable(EnvOption.CDN_USERNAME); var password = GetEnvironmentVariable(EnvOption.CDN_PASSWORD); var ftpUtil = new FTPUtil(host, userName, password); //复制到本地目录以后打成zip,然后把zip上传到CDN //upload appversion.json var tempCDNRoot = "ColaCache/CDN"; FileHelper.RmDir(tempCDNRoot); var cachePath = ColaEditHelper.TempCachePath + "/" + AppVersionFileName; var CDN_AppVersionPath = string.Format(ColaEditHelper.TempCachePath + "/" + CDNVersionControlUrl, ColaEditHelper.GetPlatformName(), "app_version.json"); FileHelper.CopyFile(cachePath, CDN_AppVersionPath, true); //upload version.txt and assets var reltaRoot = ColaEditHelper.CreateAssetBundleDirectory(); var updateFilePath = reltaRoot + "/updates.txt"; using (var sr = new StreamReader(updateFilePath)) { var content = sr.ReadLine(); while (null != content) { var reltaPath = reltaRoot + "/" + content; var destPath = ColaEditHelper.TempCachePath + "/" + CDNResourceUrl + content; FileHelper.CopyFile(reltaPath, destPath, true); content = sr.ReadLine(); } } FileHelper.CopyFile(reltaRoot + "/versions.txt", ColaEditHelper.TempCachePath + "/" + CDNResourceUrl + "versions.txt", true); //ZIP var zipPath = "ColaCache/hotupdate.zip"; FileHelper.DeleteFile(zipPath); var result = ZipHelper.Zip(tempCDNRoot, zipPath); if (result) { ftpUtil.Upload(zipPath, "Upload/hotupdate.zip"); } else { Debug.LogError("Zip并上传CDN过程中出现错误!"); } } //上传本地CDN,打包机和CDN是同一台机器 else { //upload appversion.json var cachePath = ColaEditHelper.TempCachePath + "/" + AppVersionFileName; var CDN_AppVersionPath = string.Format(CDNVersionControlUrl, ColaEditHelper.GetPlatformName(), "app_version.json"); FileHelper.CopyFile(cachePath, CDN_AppVersionPath, true); //upload version.txt and assets var reltaRoot = ColaEditHelper.CreateAssetBundleDirectory(); var updateFilePath = reltaRoot + "/updates.txt"; using (var sr = new StreamReader(updateFilePath)) { var content = sr.ReadLine(); while (null != content) { var reltaPath = reltaRoot + "/" + content; var destPath = CDNResourceUrl + content; FileHelper.CopyFile(reltaPath, destPath, true); content = sr.ReadLine(); } } FileHelper.CopyFile(reltaRoot + "/versions.txt", CDNResourceUrl + "versions.txt", true); } } Debug.Log("=================UpLoadCDN Time================ : " + (System.DateTime.Now - beginTime).TotalSeconds); }