| | |
| | | }
|
| | |
|
| | | var relativePath = FileExtersion.GetFileRelativePath(_assetBundlePath, item.FullName);
|
| | | var to = StringUtility.Contact(ResourcesPath.Instance.StreamingAssetPath, relativePath);
|
| | | var to = StringUtility.Concat(ResourcesPath.Instance.StreamingAssetPath, relativePath);
|
| | | var directory = Path.GetDirectoryName(to);
|
| | | if (!Directory.Exists(directory))
|
| | | {
|
| | |
| | |
|
| | | var excludeFileFullNames = new List<string>();
|
| | | var tempFiles = new List<FileInfo>();
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Contact(_assetBundlePath, "/hero"), tempFiles);
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(_assetBundlePath, "/hero"), tempFiles);
|
| | | foreach (var file in tempFiles)
|
| | | {
|
| | | var extersion = Path.GetExtension(file.FullName);
|
| | |
| | | }
|
| | |
|
| | | tempFiles.Clear();
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Contact(_assetBundlePath, "/maps"), tempFiles);
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(_assetBundlePath, "/maps"), tempFiles);
|
| | | foreach (var file in tempFiles)
|
| | | {
|
| | | var extersion = Path.GetExtension(file.FullName);
|
| | |
| | | }
|
| | |
|
| | | tempFiles.Clear();
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Contact(_assetBundlePath, "/audio"), tempFiles);
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(_assetBundlePath, "/audio"), tempFiles);
|
| | | foreach (var file in tempFiles)
|
| | | {
|
| | | var extersion = Path.GetExtension(file.FullName);
|
| | |
| | | }
|
| | |
|
| | | tempFiles.Clear();
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Contact(_assetBundlePath, "/uieffect"), tempFiles);
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(_assetBundlePath, "/uieffect"), tempFiles);
|
| | | foreach (var file in tempFiles)
|
| | | {
|
| | | var extersion = Path.GetExtension(file.FullName);
|
| | |
| | |
|
| | | //剔除视频资源
|
| | | tempFiles.Clear();
|
| | | var videoPath = StringUtility.Contact(_assetBundlePath, "/video");
|
| | | var videoPath = StringUtility.Concat(_assetBundlePath, "/video");
|
| | | if (File.Exists(videoPath))
|
| | | {
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Contact(_assetBundlePath, "/video"), tempFiles);
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(_assetBundlePath, "/video"), tempFiles);
|
| | | foreach (var file in tempFiles)
|
| | | {
|
| | | var extersion = Path.GetExtension(file.FullName);
|
| | |
| | | if (!includeConfig)
|
| | | {
|
| | | tempFiles.Clear();
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Contact(_assetBundlePath, "/config"), tempFiles);
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(_assetBundlePath, "/config"), tempFiles);
|
| | | foreach (var file in tempFiles)
|
| | | {
|
| | | excludeFileFullNames.Add(file.FullName);
|
| | |
| | |
|
| | | //剔除UI资源
|
| | | //tempFiles.Clear();
|
| | | //FileExtersion.GetAllDirectoryFileInfos(StringUtility.Contact(_assetBundlePath, "/ui/sprite"), tempFiles);
|
| | | //FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(_assetBundlePath, "/ui/sprite"), tempFiles);
|
| | | //foreach (var file in tempFiles)
|
| | | //{
|
| | | // var fileName = Path.GetFileName(file.FullName);
|
| | |
| | | if (!includeUI)
|
| | | {
|
| | | tempFiles.Clear();
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Contact(_assetBundlePath, "/ui"), tempFiles);
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(_assetBundlePath, "/ui"), tempFiles);
|
| | | foreach (var file in tempFiles)
|
| | | {
|
| | | excludeFileFullNames.Add(file.FullName);
|
| | |
| | | #if !UNITY_IOS
|
| | | //剔除UI资源
|
| | | tempFiles.Clear();
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Contact(_assetBundlePath, "/ui"), tempFiles);
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(_assetBundlePath, "/ui"), tempFiles);
|
| | | foreach (var file in tempFiles)
|
| | | {
|
| | | var extersion = Path.GetExtension(file.FullName);
|
| | |
| | | foreach (var item in fromFiles)
|
| | | {
|
| | | var relativePath = FileExtersion.GetFileRelativePath(_assetBundlePath, item.FullName);
|
| | | var to = StringUtility.Contact(ResourcesPath.Instance.StreamingAssetPath, relativePath);
|
| | | var to = StringUtility.Concat(ResourcesPath.Instance.StreamingAssetPath, relativePath);
|
| | | if (relativePath.StartsWith("patch"))//不包含meta文件和补丁
|
| | | continue;
|
| | |
|
| | |
| | | foreach (var item in fromFiles)
|
| | | {
|
| | | var relativePath = FileExtersion.GetFileRelativePath(_assetBundlePath, item.FullName);
|
| | | var to = StringUtility.Contact(ResourcesPath.Instance.StreamingAssetPath, relativePath);
|
| | | var to = StringUtility.Concat(ResourcesPath.Instance.StreamingAssetPath, relativePath);
|
| | | if (relativePath.StartsWith("patch"))//不包含meta文件和补丁
|
| | | continue;
|
| | |
|
| | |
| | | public static void BuildApk(string _sdkPath, string _output, string _publisher, int _buildIndex, bool _development)
|
| | | {
|
| | | PreBuild(_publisher, _buildIndex);
|
| | | var auditTimeFile = StringUtility.Contact(Application.dataPath, Path.DirectorySeparatorChar.ToString(), "Resources/Config/AuditTime.txt");
|
| | | var auditTimeFile = StringUtility.Concat(Application.dataPath, Path.DirectorySeparatorChar.ToString(), "Resources/Config/AuditTime.txt");
|
| | | if (File.Exists(auditTimeFile))
|
| | | {
|
| | | File.Delete(auditTimeFile);
|
| | |
| | | // if (text.Contains("VERSION_ALTERNATIVE"))
|
| | | // {
|
| | | // var pattern = "VERSION_ALTERNATIVE = \".*\"";
|
| | | // text = Regex.Replace(text, pattern, StringUtility.Contact("VERSION_ALTERNATIVE = ", "\"", versionConfig.m_Version, "\""));
|
| | | // text = Regex.Replace(text, pattern, StringUtility.Concat("VERSION_ALTERNATIVE = ", "\"", versionConfig.m_Version, "\""));
|
| | |
|
| | | // bool encoderShouldEmitUTF8Identifier = true;
|
| | | // bool throwOnInvalidBytes = false;
|
| | |
| | | // 更名原有文件
|
| | | // string _gradleTemplateUrl = EditorApplication.applicationContentsPath + "/PlaybackEngines/AndroidPlayer/Tools/GradleTemplates/";
|
| | | // string _gradleFileUrl = _gradleTemplateUrl + "mainTemplate.gradle";
|
| | | // string _diffGradleFileUrl = StringUtility.Contact(_sdkPath, "/GradleDiff/", versionConfig.appId, "/mainTemplate.gradle");
|
| | | // string _diffGradleFileUrl = StringUtility.Concat(_sdkPath, "/GradleDiff/", versionConfig.appId, "/mainTemplate.gradle");
|
| | | // FileInfo _fileInfo = new FileInfo(_diffGradleFileUrl);
|
| | |
|
| | | // if (!_fileInfo.Exists)
|
| | |
| | | string copySdkFile;
|
| | |
|
| | | channelSdkPath = StringUtility.Concat(_sdkPath, "/Channel/Android/", versionConfig.sdkFileName, "/", variant);
|
| | | copySdkFile = StringUtility.Contact(_sdkPath, "/Channel/Android/", versionConfig.sdkFileName, "/AndroidManifest.xml");
|
| | | copySdkFile = StringUtility.Concat(_sdkPath, "/Channel/Android/", versionConfig.sdkFileName, "/AndroidManifest.xml");
|
| | | File.Copy(copySdkFile, MANIFEST_PATH);
|
| | | copySdkFile = StringUtility.Contact(_sdkPath, "/Channel/Android/", versionConfig.sdkFileName, "/baseProjectTemplate.gradle");
|
| | | copySdkFile = StringUtility.Concat(_sdkPath, "/Channel/Android/", versionConfig.sdkFileName, "/baseProjectTemplate.gradle");
|
| | | File.Copy(copySdkFile, File_baseProjectTemplate);
|
| | | copySdkFile = StringUtility.Contact(_sdkPath, "/Channel/Android/", versionConfig.sdkFileName, "/deps.gradle");
|
| | | copySdkFile = StringUtility.Concat(_sdkPath, "/Channel/Android/", versionConfig.sdkFileName, "/deps.gradle");
|
| | | File.Copy(copySdkFile, File_deps);
|
| | | copySdkFile = StringUtility.Contact(_sdkPath, "/Channel/Android/", versionConfig.sdkFileName, "/google-services.json");
|
| | | copySdkFile = StringUtility.Concat(_sdkPath, "/Channel/Android/", versionConfig.sdkFileName, "/google-services.json");
|
| | | File.Copy(copySdkFile, File_google_services);
|
| | | copySdkFile = StringUtility.Contact(_sdkPath, "/Channel/Android/", versionConfig.sdkFileName, "/gradleTemplate.properties");
|
| | | copySdkFile = StringUtility.Concat(_sdkPath, "/Channel/Android/", versionConfig.sdkFileName, "/gradleTemplate.properties");
|
| | | File.Copy(copySdkFile, File_gradleTemplate);
|
| | | //copySdkFile = StringUtility.Contact(_sdkPath, "/Channel/Android/", versionConfig.appId, "/LauncherManifest.xml");
|
| | | //copySdkFile = StringUtility.Concat(_sdkPath, "/Channel/Android/", versionConfig.appId, "/LauncherManifest.xml");
|
| | | //File.Copy(copySdkFile, File_LauncherManifest);
|
| | | copySdkFile = StringUtility.Contact(_sdkPath, "/Channel/Android/", versionConfig.sdkFileName, "/launcherTemplate.gradle");
|
| | | copySdkFile = StringUtility.Concat(_sdkPath, "/Channel/Android/", versionConfig.sdkFileName, "/launcherTemplate.gradle");
|
| | | File.Copy(copySdkFile, File_launcherTemplate);
|
| | | copySdkFile = StringUtility.Contact(_sdkPath, "/Channel/Android/", versionConfig.sdkFileName, "/mainTemplate.gradle");
|
| | | copySdkFile = StringUtility.Concat(_sdkPath, "/Channel/Android/", versionConfig.sdkFileName, "/mainTemplate.gradle");
|
| | | File.Copy(copySdkFile, File_mainTemplate);
|
| | | copySdkFile = StringUtility.Contact(_sdkPath, "/Channel/Android/", versionConfig.sdkFileName, "/settingsTemplate.gradle");
|
| | | copySdkFile = StringUtility.Concat(_sdkPath, "/Channel/Android/", versionConfig.sdkFileName, "/settingsTemplate.gradle");
|
| | | File.Copy(copySdkFile, File_settingGradle);
|
| | |
|
| | | if (versionConfig.sdkFileName == "hyyngame_huawei")
|
| | | {
|
| | | copySdkFile = StringUtility.Contact(_sdkPath, "/Channel/Android/", versionConfig.sdkFileName, "/agconnect-services.json");
|
| | | copySdkFile = StringUtility.Concat(_sdkPath, "/Channel/Android/", versionConfig.sdkFileName, "/agconnect-services.json");
|
| | | File.Copy(copySdkFile, File_huawei_services);
|
| | | }
|
| | |
|
| | |
| | |
|
| | | if (versionConfig1.sdkFileName.Trim().Length != 0)
|
| | | {
|
| | | FileExtersion.DirectoryCopy(StringUtility.Contact(_sdkPath, "/Channel/iOS/", versionConfig1.sdkFileName, "/Plugins"), iOS_PLUGIN_PATH);
|
| | | FileExtersion.DirectoryCopy(StringUtility.Concat(_sdkPath, "/Channel/iOS/", versionConfig1.sdkFileName, "/Plugins"), iOS_PLUGIN_PATH);
|
| | | }
|
| | | else
|
| | | {
|
| | | FileExtersion.DirectoryCopy(StringUtility.Contact(_sdkPath, "/Channel/iOS/", versionConfig1.appId, "/Plugins"), iOS_PLUGIN_PATH);
|
| | | FileExtersion.DirectoryCopy(StringUtility.Concat(_sdkPath, "/Channel/iOS/", versionConfig1.appId, "/Plugins"), iOS_PLUGIN_PATH);
|
| | | }
|
| | |
|
| | | DateTime outTime;
|
| | |
| | | private static void PreBuild(string _publisher, int _buildIndex)
|
| | | {
|
| | | MakePackageMD5File();
|
| | | var newVersionConfigPath = StringUtility.Contact("Assets/Resources/VersionConfig", ".asset");
|
| | | var newVersionConfigPath = StringUtility.Concat("Assets/Resources/VersionConfig", ".asset");
|
| | | var versionName = string.Empty;
|
| | | var fromVersionConfig = GetVersionConfig(_publisher, out versionName);
|
| | | var newVersionConfig = ScriptableObject.CreateInstance<VersionConfig>();
|
| | |
| | | static void SetIconAndSplashImage(string _versionName)
|
| | | {
|
| | | var buildTarget = GetBuildTarget();
|
| | | var texture = AssetDatabase.LoadAssetAtPath<Texture2D>(StringUtility.Contact("Assets/Editor/Logo/", _versionName, "/Icon.png"));
|
| | | var texture = AssetDatabase.LoadAssetAtPath<Texture2D>(StringUtility.Concat("Assets/Editor/Logo/", _versionName, "/Icon.png"));
|
| | | var iconSizes = PlayerSettings.GetIconSizesForTargetGroup(buildTarget);
|
| | | var icons = new Texture2D[iconSizes.Length];
|
| | | for (int i = 0; i < iconSizes.Length; i++)
|
| | |
| | | PlayerSettings.SplashScreen.showUnityLogo = false;
|
| | | PlayerSettings.SplashScreen.unityLogoStyle = PlayerSettings.SplashScreen.UnityLogoStyle.LightOnDark;
|
| | |
|
| | | var splashImage = AssetDatabase.LoadAssetAtPath<Sprite>(StringUtility.Contact("Assets/Editor/Logo/", _versionName, "/SplashImage.png"));
|
| | | var splashImage = AssetDatabase.LoadAssetAtPath<Sprite>(StringUtility.Concat("Assets/Editor/Logo/", _versionName, "/SplashImage.png"));
|
| | | var splashScreenLogo = PlayerSettings.SplashScreenLogo.Create(3, splashImage);
|
| | | PlayerSettings.SplashScreen.logos = new PlayerSettings.SplashScreenLogo[] { splashScreenLogo };
|
| | |
|