From 6ab4f430f523d7a85589c7eef9523f6fa6c48aea Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期五, 11 十二月 2020 20:31:55 +0800
Subject: [PATCH] 0312 更新批量文字工具
---
Assets/Editor/Tool/ClientPackage.cs | 233 ++++++++++++++++++++++++++++++++++++++++++----------------
1 files changed, 168 insertions(+), 65 deletions(-)
diff --git a/Assets/Editor/Tool/ClientPackage.cs b/Assets/Editor/Tool/ClientPackage.cs
index 45baa67..adf2a00 100644
--- a/Assets/Editor/Tool/ClientPackage.cs
+++ b/Assets/Editor/Tool/ClientPackage.cs
@@ -6,7 +6,7 @@
using System.IO;
using System.Text.RegularExpressions;
using System.Text;
-using TableConfig;
+
using Beebyte.Obfuscator;
public class ClientPackage
@@ -16,24 +16,38 @@
public static string auditOutTime = string.Empty;
- public static string SDK_PLUGIN_PROJECT {
+ public static string SDK_PLUGIN_PROJECT
+ {
get { return LocalSave.GetString("SDK_PROJECT_PATH"); }
set { LocalSave.SetString("SDK_PROJECT_PATH", value); }
}
- public static bool obfuscatorEnabled {
+ public static bool obfuscatorEnabled
+ {
get { return LocalSave.GetBool("obfuscatorEnabled", false); }
set { LocalSave.SetBool("obfuscatorEnabled", value); }
}
- public static int AssetPrior {
+ public static int AssetPrior
+ {
get { return LocalSave.GetInt("HalfAssetPrior", 1); }
set { LocalSave.SetInt("HalfAssetPrior", value); }
}
- static string ANDROID_PLUGIN_PATH = Application.dataPath + "/Plugins/Android";
+ static string THE_2TH_WORLD_SDK_PATH = Application.dataPath + "/Plugins/Android/bin";
+ // static string MANIFEST_PATH = Application.dataPath + "/Plugins/Android/AndroidManifest.xml";
static string iOS_PLUGIN_PATH = Application.dataPath + "/Plugins/iOS";
+ /// <summary>
+ /// 鎵撳寘
+ /// </summary>
+ /// <param name="_sdkPath">鏁村悎sdk璺緞</param>
+ /// <param name="_assetBundlePath">_assetBundle鐨勮祫婧愯矾寰勶紝榛樿鍦ㄩ」鐩洰褰曚笅鐨� AssetBundles/android</param>
+ /// <param name="_output">鎵撳寘瀹屾垚鍚庣殑杈撳嚭璺緞</param>
+ /// <param name="_publisherString">娓犻亾id锛屽彲鎵撳涓寘锛岀敤|鍒嗗壊</param>
+ /// <param name="_buildIndex">鎵撳寘搴忓簭鍙凤紝鐢ㄤ簬鏍囪瘑鍚嶇О</param>
+ /// <param name="_development">鏄惁涓哄紑鍙戠増</param>
+ /// <param name="_replace">ios鎵撳寘瀵煎嚭xcode宸ョ▼妯″紡锛孉ppend鍜孯eplace</param>
public static void BuildPublishers(string _sdkPath, string _assetBundlePath, string _output, string _publisherString, int _buildIndex, bool _development, bool _replace)
{
var publisherIds = new List<string>();
@@ -116,7 +130,9 @@
if (file.FullName.Contains("Contact.txt")
|| file.FullName.Contains("HelpInfo.txt")
|| file.FullName.Contains("PriorBundle.txt")
- || file.FullName.Contains("PriorLanguage.txt"))
+ || file.FullName.Contains("PriorLanguage.txt")
+ || file.FullName.Contains("ApkUpdateUrl.txt")
+ || file.FullName.Contains("InitialFunction.txt"))
{
builtInFiles.Add(file);
continue;
@@ -129,28 +145,21 @@
var completeCount = 0;
foreach (var item in builtInFiles)
{
- var directory = Path.GetDirectoryName(item.FullName);
- if (!Directory.Exists(directory))
- {
- Directory.CreateDirectory(directory);
- }
-
- var relativePath = FileExtersion.GetFileRelativePath(_assetBundlePath, item.FullName);
- var to = StringUtility.Contact(ResourcesPath.Instance.StreamingAssetPath, relativePath);
-#if UNITY_ANDROID
var extension = Path.GetExtension(item.FullName);
if (extension == ".meta")
{
continue;
}
- to = to + ".7z";
- SevenZipUtility.Compress(item.FullName, to);
- UnityEditor.EditorUtility.DisplayProgressBar("姝e湪鍘嬬缉璧勬簮", item.Name, (float)completeCount / totalCount);
-#elif UNITY_IOS
- File.Copy(item.FullName,to,true);
-#endif
+ var relativePath = FileExtersion.GetFileRelativePath(_assetBundlePath, item.FullName);
+ var to = StringUtility.Contact(ResourcesPath.Instance.StreamingAssetPath, relativePath);
+ var directory = Path.GetDirectoryName(to);
+ if (!Directory.Exists(directory))
+ {
+ Directory.CreateDirectory(directory);
+ }
+ File.Copy(item.FullName, to, true);
completeCount++;
}
@@ -168,7 +177,7 @@
if (halfPackages.Count > 0)
{
- Config.Instance.LoadPriorBundleConfig();
+ PriorBundleConfig.Init(true);
var fromFiles = new List<FileInfo>();
FileExtersion.GetAllDirectoryFileInfos(_assetBundlePath, fromFiles);
@@ -270,28 +279,21 @@
var completeCount = 0;
foreach (var item in fromFiles)
{
- var directory = Path.GetDirectoryName(item.FullName);
+ var relativePath = FileExtersion.GetFileRelativePath(_assetBundlePath, item.FullName);
+ var to = StringUtility.Contact(ResourcesPath.Instance.StreamingAssetPath, relativePath);
+ var directory = Path.GetDirectoryName(to);
if (!Directory.Exists(directory))
{
Directory.CreateDirectory(directory);
}
- var relativePath = FileExtersion.GetFileRelativePath(_assetBundlePath, item.FullName);
- var to = StringUtility.Contact(ResourcesPath.Instance.StreamingAssetPath, relativePath);
-#if UNITY_ANDROID
var extension = Path.GetExtension(item.FullName);
if (extension == ".meta")
{
continue;
}
- to = to + ".7z";
- SevenZipUtility.Compress(item.FullName, to);
- UnityEditor.EditorUtility.DisplayProgressBar("姝e湪鍘嬬缉璧勬簮", item.Name, (float)completeCount / totalCount);
-#elif UNITY_IOS
- File.Copy(item.FullName,to,true);
-#endif
-
+ File.Copy(item.FullName, to, true);
completeCount++;
}
@@ -308,7 +310,31 @@
if (bigPackages.Count > 0)
{
- FileExtersion.DirectoryCopy(_assetBundlePath, ResourcesPath.Instance.StreamingAssetPath);
+ var fromFiles = new List<FileInfo>();
+ FileExtersion.GetAllDirectoryFileInfos(_assetBundlePath, fromFiles);
+
+ var totalCount = fromFiles.Count;
+ var completeCount = 0;
+ foreach (var item in fromFiles)
+ {
+ var relativePath = FileExtersion.GetFileRelativePath(_assetBundlePath, item.FullName);
+ var to = StringUtility.Contact(ResourcesPath.Instance.StreamingAssetPath, relativePath);
+ var directory = Path.GetDirectoryName(to);
+ if (!Directory.Exists(directory))
+ {
+ Directory.CreateDirectory(directory);
+ }
+
+ var extension = Path.GetExtension(item.FullName);
+ if (extension == ".meta")
+ {
+ continue;
+ }
+
+ File.Copy(item.FullName, to, true);
+ completeCount++;
+ }
+
for (int i = 0; i < bigPackages.Count; i++)
{
#if UNITY_ANDROID
@@ -324,7 +350,6 @@
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, "Resources/Config/AuditTime.txt");
if (File.Exists(auditTimeFile))
{
@@ -354,38 +379,68 @@
// 閽堝鏌愪竴浜涙墦鍖呯殑鐗规畩鎬�, 杩欓噷鐗规寚渚濊禆鐨勭涓夋柟搴撳惈鏈夎祫婧愮殑闂
// 杩欓噷瀵规湁杩欑鐗瑰瀷鐨勬笭閬撶殑sdk鍦ㄦ墦鍖呯殑鏃跺�欏樊寮傚寲gradle鏂囦欢
// 鏇村悕鍘熸湁鏂囦欢
- string _gradleTemplateUrl = EditorApplication.applicationContentsPath + "/PlaybackEngines/AndroidPlayer/Tools/GradleTemplates/";
- string _gradleFileUrl = _gradleTemplateUrl + "mainTemplate.gradle";
- string _diffGradleFileUrl = StringUtility.Contact(_sdkPath, "/GradleDiff/", versionConfig.appId, "/mainTemplate.gradle");
- FileInfo _fileInfo = new FileInfo(_diffGradleFileUrl);
+ // string _gradleTemplateUrl = EditorApplication.applicationContentsPath + "/PlaybackEngines/AndroidPlayer/Tools/GradleTemplates/";
+ // string _gradleFileUrl = _gradleTemplateUrl + "mainTemplate.gradle";
+ // string _diffGradleFileUrl = StringUtility.Contact(_sdkPath, "/GradleDiff/", versionConfig.appId, "/mainTemplate.gradle");
+ // FileInfo _fileInfo = new FileInfo(_diffGradleFileUrl);
- if (!_fileInfo.Exists)
- {
- EditorUtility.DisplayDialog("璀﹀憡", "Gradle妯″紡闇�瑕侀厤缃樊寮傛枃浠�,浣嗘槸娌℃湁鎵惧埌璇ユ枃浠�: " + _diffGradleFileUrl, "@Hale");
- return;
- }
+ // if (!_fileInfo.Exists)
+ // {
+ // EditorUtility.DisplayDialog("璀﹀憡", "Gradle妯″紡闇�瑕侀厤缃樊寮傛枃浠�,浣嗘槸娌℃湁鎵惧埌璇ユ枃浠�: " + _diffGradleFileUrl, "@Hale");
+ // return;
+ // }
- _fileInfo.CopyTo(_gradleFileUrl, true);
+ // _fileInfo.CopyTo(_gradleFileUrl, true);
// 绉诲姩閰嶇疆鏂囦欢鑷虫墦鍖呭伐浣滅洰褰曚腑
-
- PlayerSettings.Android.keystoreName = Application.dataPath + "/Editor/Keystore/" + versionConfig.keystoreFileName + ".keystore";
+ var keystorePath = Application.dataPath + "/Editor/Keystore/" + versionConfig.keystoreFileName + ".keystore";
+ if (!File.Exists(keystorePath))
+ {
+ Debug.LogError("绛惧悕鏂囦欢涓嶅瓨鍦�");
+ return;
+ }
+ PlayerSettings.Android.keystoreName = keystorePath;
PlayerSettings.Android.keystorePass = versionConfig.keystorePassword;
PlayerSettings.Android.keyaliasName = versionConfig.keystoreAlias;
PlayerSettings.Android.keyaliasPass = versionConfig.keystoreAliasPassword;
- PlayerSettings.Android.targetSdkVersion = AndroidSdkVersions.AndroidApiLevel22;
+ // PlayerSettings.Android.targetSdkVersion = AndroidSdkVersions.AndroidApiLevel22;
PlayerSettings.Android.bundleVersionCode = VersionConfig.GetVersionNumber(versionConfig.version);
PlayerSettings.enableInternalProfiler = _development;
- if (Directory.Exists(ANDROID_PLUGIN_PATH))
- {
- Directory.Delete(ANDROID_PLUGIN_PATH, true);
- }
+ //鍒犻櫎鍘焥dk鏂囦欢
+ if (Directory.Exists(THE_2TH_WORLD_SDK_PATH))
+ Directory.Delete(THE_2TH_WORLD_SDK_PATH, true);
+ //鍒犻櫎鍘熸竻鍗曟枃浠�
+ // if (File.Exists(MANIFEST_PATH))
+ // File.Delete(MANIFEST_PATH);
- Debug.LogFormat("鎵цAndroid SDK 鏂囦欢鎷疯礉锛宖rom:{0};to:{1}", StringUtility.Contact(_sdkPath, "/Android/release"), ANDROID_PLUGIN_PATH);
- FileExtersion.DirectoryCopy(StringUtility.Contact(_sdkPath, "/Android/release"), ANDROID_PLUGIN_PATH);
- FileExtersion.DirectoryCopy(StringUtility.Contact(_sdkPath, "/ChannelDiff/Android/", versionConfig.appId), ANDROID_PLUGIN_PATH);
+ var variant = _development ? "debug" : "release";
+
+ // var manifestpath = StringUtility.Contact(_sdkPath, "/Channel/Android/", versionConfig.appId, "/AndroidManifest.xml");
+ var channelSdkPath = StringUtility.Contact(_sdkPath, "/Channel/Android/", versionConfig.appId, "/", variant);
+
+ // if (File.Exists(manifestpath))
+ // {
+ // File.Copy(manifestpath, MANIFEST_PATH);
+ // DebugEx.LogFormat("鎵цAndroid 娓呭崟鏂囦欢鎷疯礉锛宖rom:{0};to:{1}", manifestpath, MANIFEST_PATH);
+ // }
+ // else
+ // {
+ // DebugEx.LogFormat("Android 娓呭崟鏂囦欢涓嶅瓨鍦紝{0}", manifestpath);
+ // // return;
+ // }
+
+ if (Directory.Exists(channelSdkPath))
+ {
+ FileExtersion.DirectoryCopy(channelSdkPath, THE_2TH_WORLD_SDK_PATH);
+ DebugEx.LogFormat("鎵цAndroid 娓犻亾SDK 鏂囦欢鎷疯礉锛宖rom:{0};to:{1}", channelSdkPath, THE_2TH_WORLD_SDK_PATH);
+ }
+ else
+ {
+ DebugEx.LogFormat("Android 娓犻亾SDK鏂囦欢涓嶅瓨鍦紝{0}", channelSdkPath);
+ return;
+ }
var option = AssetDatabase.LoadAssetAtPath<Options>("Assets/Editor/Beebyte/Obfuscator/ObfuscatorOptions.asset");
if (option != null)
@@ -422,22 +477,27 @@
Directory.Delete(iOS_PLUGIN_PATH, true);
}
- if (!versionConfig.appId.Equals("test"))
- {
- FileExtersion.DirectoryCopy(StringUtility.Contact(_sdkPath, "/ChannelDiff/iOS/", versionConfig.appId), iOS_PLUGIN_PATH);
- }
+ // if (!versionConfig.appId.Equals("test"))
+ // {
+ FileExtersion.DirectoryCopy(StringUtility.Contact(_sdkPath, "/ChannelDiff/iOS/", versionConfig.appId), iOS_PLUGIN_PATH);
+ // }
DateTime outTime;
var correct = DateTime.TryParse(auditOutTime, out outTime);
+ var directory = Application.dataPath + Path.DirectorySeparatorChar + "Resources/Config";
+ if (!Directory.Exists(directory))
+ {
+ Directory.CreateDirectory(directory);
+ }
File.WriteAllText(Application.dataPath + Path.DirectorySeparatorChar + "Resources/Config/AuditTime.txt", correct ? auditOutTime : "");
-
+
var option = AssetDatabase.LoadAssetAtPath<Options>("Assets/Editor/Beebyte/Obfuscator/ObfuscatorOptions.asset");
- if (option!=null)
+ if (option != null)
{
option.enabled = obfuscatorEnabled;
EditorUtility.SetDirty(option);
}
-
+
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
PlayerSettings.iOS.buildNumber = VersionConfig.Get().buildIndex.ToString();
@@ -458,7 +518,7 @@
{
try
{
- var newVersionConfigPath = StringUtility.Contact("Assets/Resources/ScriptableObject/Config/VersionConfig", ".asset");
+ var newVersionConfigPath = StringUtility.Contact("Assets/Resources/VersionConfig", ".asset");
var versionName = string.Empty;
var fromVersionConfig = GetVersionConfig(_publisher, out versionName);
var newVersionConfig = ScriptableObject.CreateInstance<VersionConfig>();
@@ -471,10 +531,18 @@
newVersionConfig.buildTime = DateTime.Now.ToString("yy/MM/dd--HH:mm");
newVersionConfig.buildIndex = _buildIndex;
+ if (File.Exists(Application.dataPath + "/Resources/Game.txt"))
+ {
+ File.Delete(Application.dataPath + "/Resources/Game.txt");
+ }
+
+ File.WriteAllText(Application.dataPath + "/Resources/Game.txt", GetGameId(_publisher));
+
AssetDatabase.CreateAsset(newVersionConfig, newVersionConfigPath);
EditorUtility.SetDirty(newVersionConfig);
SetIconAndSplashImage(versionName);
+ //SetCreateRoleAnimation();
PlayerSettings.companyName = "TheSecondWorld";
PlayerSettings.productName = newVersionConfig.productName;
@@ -486,8 +554,11 @@
PlayerSettings.allowedAutorotateToPortraitUpsideDown = false;
PlayerSettings.bundleVersion = VersionConfig.GetVersionNumber(newVersionConfig.version).ToString();
- CSObjectWrapEditor.Generator.ClearAll();
- CSObjectWrapEditor.Generator.GenAll();
+ if (GetBuildTarget() == BuildTargetGroup.Android)
+ {
+ CSObjectWrapEditor.Generator.ClearAll();
+ CSObjectWrapEditor.Generator.GenAll();
+ }
}
catch (Exception ex)
{
@@ -522,6 +593,22 @@
return null;
}
+ static string GetGameId(string _publisher)
+ {
+ var lines = File.ReadAllLines(versionsFilePath);
+ for (int i = 2; i < lines.Length; i++)
+ {
+ var line = lines[i];
+ var lineStrings = line.Split('\t');
+ if (lineStrings[0] == _publisher)
+ {
+ return lineStrings[7];
+ }
+ }
+
+ return "xbqy";
+ }
+
static void SetIconAndSplashImage(string _versionName)
{
var buildTarget = GetBuildTarget();
@@ -554,6 +641,22 @@
}
}
+ public static void SetCreateRoleAnimation()
+ {
+ var from = "Assets/Editor/Video/CreateRoleMovie.mp4";
+ var to = "Assets/StreamingAssets/CreateRoleMovie.mp4";
+
+ if (!Directory.Exists(Application.dataPath + "StreamingAssets"))
+ {
+ Directory.CreateDirectory(Application.dataPath + "StreamingAssets");
+ }
+
+ if (AssetDatabase.LoadAssetAtPath<UnityEngine.Video.VideoClip>(to) == null)
+ {
+ AssetDatabase.CopyAsset(from, to);
+ }
+ }
+
static BuildTargetGroup GetBuildTarget()
{
#if UNITY_ANDROID
--
Gitblit v1.8.0