c1_unity/Assets/Editor/JenkinsAdapter.cs
2023-08-10 17:44:45 +08:00

93 lines
3.4 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.Diagnostics;
using UnityEditor;
using UnityEngine;
using BFEditor.Build;
public class JenkinsAdapter {
/// <summary>
/// 构建版本号
/// </summary>
private static string BuildVersion = (int.Parse(DateTime.Now.ToString("yyMMddHH"))).ToString();
private static int versionCode = 8;
private static string versionName = "1.2.8";
[MenuItem("Jenkins/JenkinsBuildIos")]
public static void CommandLineBuildIos() {
var buildInfo = new BuildInfo();
buildInfo.version = versionName;
buildInfo.mode = "publish_release";
buildInfo.bundleName = "com.combo.heroes.puzzle.rpg";
buildInfo.skipVersion = false;
BuildProjectTools.BuildResources(buildInfo, Application.streamingAssetsPath, true);
// 重新生成XLua
CompileScriptsUtils.RegenerateXLuaCode(true);
// 设置版本号
PlayerSettings.bundleVersion = buildInfo.version;
//Jenkins要求自动构建最低ios8.0
PlayerSettings.iOS.targetOSVersionString = "12.0";
//设置Build每次需要增加
PlayerSettings.iOS.buildNumber = versionCode.ToString();
// 隐藏ios的横条
PlayerSettings.iOS.hideHomeButton = false;
// 禁止在所有边缘上延迟手势
PlayerSettings.iOS.deferSystemGesturesMode = UnityEngine.iOS.SystemGestureDeferMode.All;
// 设置竖屏
PlayerSettings.defaultInterfaceOrientation = UIOrientation.Portrait;
PlayerSettings.allowedAutorotateToPortrait = false;
PlayerSettings.allowedAutorotateToPortraitUpsideDown = false;
PlayerSettings.allowedAutorotateToLandscapeLeft = false;
PlayerSettings.allowedAutorotateToLandscapeRight = false;
// 关闭启动动画
PlayerSettings.SplashScreen.show = false;
// 设置包名
PlayerSettings.SetApplicationIdentifier(BuildTargetGroup.iOS, buildInfo.bundleName);
// 是否跳过版本控制
var symbols = "THREAD_SAFE;USE_AB";
if (buildInfo.skipVersion)
{
symbols = symbols + ";SKIP_VERSION;";
}
PlayerSettings.SetScriptingDefineSymbolsForGroup(BuildTargetGroup.iOS, symbols);
// 商品名称
PlayerSettings.productName = "Knights Combo";
// BuildType设置dev/release
EditorUserBuildSettings.iOSBuildConfigType = iOSBuildType.Release;
EditorUserBuildSettings.development = false;
// 使用IL2CPP
var scriptImp = ScriptingImplementation.IL2CPP;
PlayerSettings.SetScriptingBackend(BuildTargetGroup.iOS, scriptImp);
// 目标平台架构目前支持ARM64
PlayerSettings.SetArchitecture(BuildTargetGroup.iOS, 1);
// 开始打包
BuildPipeline.BuildPlayer(GetBuildScenes(), GetIosBuildPath(), BuildTarget.iOS, BuildOptions.None);
Console.WriteLine("Build Complete Path:" + GetIosBuildPath());
}
/// <summary>
/// 获取build Setting 列表里的打勾场景
/// </summary>
/// <returns></returns>
private static string[] GetBuildScenes() {
List<string> names = new List<string>();
foreach (var x in EditorBuildSettings.scenes) {
if (!x.enabled) continue;
names.Add(x.path);
}
return names.ToArray();
}
#region Get Build Path
private static string GetIosBuildPath() {
return "build/iOS";
}
#endregion
}