109 lines
5.0 KiB
C#
109 lines
5.0 KiB
C#
|
|
|
|
namespace Guru.Editor
|
|
{
|
|
using UnityEngine;
|
|
public enum AppBuilderType
|
|
{
|
|
Editor = 0,
|
|
Jenkins,
|
|
Others,
|
|
}
|
|
|
|
public class AppBuildParam
|
|
{
|
|
//------------ Basic ----------------
|
|
public bool IsBuildRelease; // 是否构建发布包体
|
|
public bool IsBuildShowLog; // 是否显示日志
|
|
public AppBuilderType BuilderType; // 构建类型
|
|
public string BuildVersion = ""; // 构建版本号, 填写后会依据此版本设置应用的 Version
|
|
public bool AutoSetBuildNumber = true; // 自动设置构建号, 可参考 Guru的SDK 接入说明文档
|
|
public bool UseGuruCerts = true; // 是否使用 Guru 的证书打包
|
|
//------------ Android ----------------
|
|
public bool IsBuildAAB; // 是否构建 AAB 包体 ( GooglePlay 发布专用 )
|
|
public bool IsBuildSymbols = false; // 是否需要构建 Symbols.zip 文件 ( GooglePlay 发布专用 )
|
|
public int AndroidTargetVersion = 0; // Android SDK 版本设置 ( GooglePlay 发布专用 )
|
|
public bool AndroidUseMinify = false; // 是否开启 Android 的代码混淆和保护文件
|
|
public bool DebugWithMono = true; // 是否使用 Mono 编译项目 ( Android Debug包专用 )
|
|
//------------ iOS ----------------
|
|
public string IOSTargetVersion = ""; // IOS SDK 版本设置 ( iOS 发布专用 )
|
|
public string IOSTeamId = ""; // IOS 打包 TeamId ( iOS 使用专用的开发证书后开启 )
|
|
public string CompanyName = ""; // 发布厂商的名称
|
|
|
|
|
|
|
|
public override string ToString()
|
|
{
|
|
return $"build params: \n{JsonUtility.ToJson(this, true)}";
|
|
}
|
|
|
|
|
|
public static AppBuildParam Build(bool isRelease, AppBuilderType builderType = AppBuilderType.Editor, string version = "", bool autoBuildNumber = true, string companyName = "",
|
|
bool buildShowLog = false, bool useGuruCerts = true,
|
|
bool buildSymbols = false, bool buildAAB = false, bool useMinify = false, int androidTargetVersion = 0, bool debugWithMono = true,
|
|
string iOSTargetVersion = "", string iOSTeamId = "")
|
|
{
|
|
return new AppBuildParam()
|
|
{
|
|
IsBuildRelease = isRelease,
|
|
IsBuildShowLog = buildShowLog,
|
|
BuilderType = builderType,
|
|
BuildVersion = version,
|
|
AutoSetBuildNumber = autoBuildNumber,
|
|
IsBuildAAB = buildAAB,
|
|
IsBuildSymbols = buildSymbols,
|
|
AndroidTargetVersion = androidTargetVersion,
|
|
AndroidUseMinify = useMinify,
|
|
DebugWithMono = debugWithMono,
|
|
IOSTargetVersion = iOSTargetVersion,
|
|
IOSTeamId = iOSTeamId,
|
|
CompanyName = companyName,
|
|
UseGuruCerts = useGuruCerts,
|
|
};
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 构建Android参数
|
|
/// </summary>
|
|
/// <param name="isRelease"></param>
|
|
/// <param name="version"></param>
|
|
/// <param name="autoBuildNumber"></param>
|
|
/// <param name="builderType"></param>
|
|
/// <param name="companyName"></param>
|
|
/// <param name="useGuruCerts"></param>
|
|
/// <param name="useMinify"></param>
|
|
/// <param name="androidTargetVersion"></param>
|
|
/// <param name="debugWithMono"></param>
|
|
/// <returns></returns>
|
|
public static AppBuildParam AndroidParam(bool isRelease, string version = "", bool autoBuildNumber = true, AppBuilderType builderType = AppBuilderType.Editor,
|
|
string companyName = "", bool useGuruCerts = true, bool useMinify = false, int androidTargetVersion = 0, bool debugWithMono = true)
|
|
{
|
|
bool buildAAB = isRelease;
|
|
bool buildShowLog = isRelease;
|
|
bool buildSymbols = isRelease;
|
|
return Build(isRelease, builderType, version, autoBuildNumber,companyName, buildShowLog, useGuruCerts, buildSymbols, buildAAB, useMinify, androidTargetVersion, debugWithMono);
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 构建iOS参数
|
|
/// </summary>
|
|
/// <param name="isRelease"></param>
|
|
/// <param name="version"></param>
|
|
/// <param name="autoBuildNumber"></param>
|
|
/// <param name="builderType"></param>
|
|
/// <param name="companyName"></param>
|
|
/// <param name="useGuruCerts"></param>
|
|
/// <param name="iOSTargetVersion"></param>
|
|
/// <param name="iOSTeamId"></param>
|
|
/// <returns></returns>
|
|
public static AppBuildParam IOSParam(bool isRelease, string version = "", bool autoBuildNumber = true, AppBuilderType builderType = AppBuilderType.Editor,
|
|
string companyName = "", bool useGuruCerts = true, string iOSTargetVersion = "", string iOSTeamId = "" )
|
|
{
|
|
bool buildShowLog = isRelease;
|
|
return Build(isRelease, builderType, version, autoBuildNumber, companyName, buildShowLog, useGuruCerts, iOSTargetVersion:iOSTargetVersion, iOSTeamId:iOSTeamId);
|
|
}
|
|
|
|
}
|
|
} |