using System;
using System.Collections.Generic;
using System.Diagnostics;
using UnityEditor;
using UnityEngine;
using BFEditor.Build;
public class JenkinsAdapter {
///
/// 构建版本号
///
private static string BuildVersion = (int.Parse(DateTime.Now.ToString("yyMMddHH"))).ToString();
private static int versionCode = 9;
private static string versionName = "1.3.3";
[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;
//SDK要求
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());
}
///
/// 获取build Setting 列表里的打勾场景
///
///
private static string[] GetBuildScenes() {
List names = new List();
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
}