fix: 修复打包脚本中 VersionCode 生成缺少位数的 BUG

Signed-off-by: huyufei <yufei.hu@castbox.fm>
胡宇飞 2024-08-08 09:37:15 +08:00
parent 91e873880b
commit b186489a54
1 changed files with 32 additions and 18 deletions

View File

@ -87,10 +87,13 @@ namespace Guru.Editor
var isDebug = !buildParam.IsBuildRelease; var isDebug = !buildParam.IsBuildRelease;
var useMinify = buildParam.AndroidUseMinify; var useMinify = buildParam.AndroidUseMinify;
var buildNumber= GetBuildNumberString(BuildTarget.Android); var buildNumber= GetPlayerSettingsBuildNumberStr(BuildTarget.Android);
var androidTargetVersion = buildParam.AndroidTargetVersion == 0 ? DefaultAndroidTargetSdkVersion : buildParam.AndroidTargetVersion; var androidTargetVersion = buildParam.AndroidTargetVersion == 0 ? DefaultAndroidTargetSdkVersion : buildParam.AndroidTargetVersion;
if (buildParam.AutoSetBuildNumber) buildNumber = ChangeBuildNumber(BuildTarget.Android); if (buildParam.AutoSetBuildNumber)
{
buildNumber = CreateGuruBuildNumber();
PlayerSettings.Android.bundleVersionCode = int.Parse(buildNumber);
}
// 保存版本信息 // 保存版本信息
SaveBuildVersion(buildParam.BuildVersion, buildNumber); SaveBuildVersion(buildParam.BuildVersion, buildNumber);
@ -293,8 +296,12 @@ namespace Guru.Editor
ChangeBuildPlayerCommonSetting(buildParam, BuildTargetGroup.iOS); ChangeBuildPlayerCommonSetting(buildParam, BuildTargetGroup.iOS);
//修改打包版本号 //修改打包版本号
var buildNumber= GetBuildNumberString(BuildTarget.Android); var buildNumber= GetPlayerSettingsBuildNumberStr(BuildTarget.Android);
if(buildParam.AutoSetBuildNumber) buildNumber = ChangeBuildNumber(BuildTarget.iOS); if (buildParam.AutoSetBuildNumber)
{
buildNumber = CreateGuruBuildNumber();
PlayerSettings.iOS.buildNumber = buildNumber;
}
// 保存版本信息 // 保存版本信息
SaveBuildVersion(buildParam.BuildVersion, buildNumber); SaveBuildVersion(buildParam.BuildVersion, buildNumber);
@ -437,19 +444,15 @@ namespace Guru.Editor
/// 修改打包版本号 /// 修改打包版本号
/// </summary> /// </summary>
/// <param name="buildTarget"></param> /// <param name="buildTarget"></param>
private static string ChangeBuildNumber(BuildTarget buildTarget) private static string CreateGuruBuildNumber()
{ {
var nowDate = DateTime.Now; var nowDate = DateTime.Now;
string strBuildNumber = $"{nowDate.Year - 2000}{nowDate.Month:00}{nowDate.Day:00}{(nowDate.Hour * 60 + nowDate.Minute) / 15}"; string strYear = nowDate.Year.ToString().Substring(2);
int buildNumber = int.Parse(strBuildNumber); string strMon = nowDate.Month.ToString("00");
if (buildTarget == BuildTarget.iOS) string strDay = nowDate.Day.ToString("00");
{ string strQuarter = ((nowDate.Hour * 60 + nowDate.Minute) / 15).ToString("00");
PlayerSettings.iOS.buildNumber = buildNumber.ToString(); // 2024-08-01 08:00:00 to version string: 240801
} string strBuildNumber = $"{strYear}{strMon}{strDay}{strQuarter}";
else if (buildTarget == BuildTarget.Android)
{
PlayerSettings.Android.bundleVersionCode = buildNumber;
}
return strBuildNumber; return strBuildNumber;
} }
@ -457,7 +460,7 @@ namespace Guru.Editor
/// 获取构建数变量 /// 获取构建数变量
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
private static string GetBuildNumberString(BuildTarget buildTarget) private static string GetPlayerSettingsBuildNumberStr(BuildTarget buildTarget)
{ {
if (buildTarget == BuildTarget.iOS) if (buildTarget == BuildTarget.iOS)
{ {
@ -528,7 +531,18 @@ namespace Guru.Editor
} }
[Test]
public static void TEST_BuildVersionString()
{
var nowDate = new DateTime(2024, 8, 1, 0, 0, 0);
string strYear = nowDate.Year.ToString().Substring(2);
string strMon = nowDate.Month.ToString("00");
string strDay = nowDate.Day.ToString("00");
string strQuarter = ((nowDate.Hour * 60 + nowDate.Minute) / 15).ToString("00");
// 2024-08-01 08:00:00 to version string: 240801
string strBuildNumber = $"{strYear}{strMon}{strDay}{strQuarter}";
Debug.Log($"Get BuildVersion Code: {strBuildNumber}");
}
#endregion #endregion
} }