Exemple #1
0
        /// <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);
        }
Exemple #2
0
        /// <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();
        }
Exemple #3
0
        /// <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);
        }