93 lines
3.4 KiB
C#
93 lines
3.4 KiB
C#
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.7";
|
||
|
||
[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
|
||
|
||
} |