Unity3d的Build后处理,和场景build前处理
Unity 打包前/打包后进行某些操作。
using UnityEditor;
using UnityEditor.Build;
using UnityEditor.Build.Reporting;
using UnityEngine;
/*
* Unity3d的Build后处理,和场景build前处理
*/
public class ProcessBuild : IPreprocessBuildWithReport, IPostprocessBuildWithReport
{
public int callbackOrder { get { return 0; } }
//打包前处理
public void OnPreprocessBuild(BuildReport report)
{
Debug.Log("打包前处理 =========================");
Debug.LogError("AAAAAAAAAAAAAAAAA platform = " + report.summary.platform);
Debug.LogError("AAAAAAAAAAAAAAAAA platformGroup = " + report.summary.platformGroup);
Debug.LogError(string.Format("{0:yyMMdd}", System.DateTime.Now));
switch (report.summary.platform)
{
case BuildTarget.Android:
{
string keyStoreDir = GetKeyStorePath();
PlayerSettings.Android.keystoreName = System.IO.Path.Combine(keyStoreDir, "lgs.keystore");
PlayerSettings.Android.keystorePass = "123456";
PlayerSettings.Android.keyaliasName = "luguoshuai";
PlayerSettings.Android.keyaliasPass = "123456";
PlayerSettings.applicationIdentifier = "com.niuchicao.luguoshuai";
}
break;
case BuildTarget.iOS:
{
PlayerSettings.iOS.targetDevice = iOSTargetDevice.iPhoneOnly;
// 设置 IOS 最低兼容版本
PlayerSettings.iOS.targetOSVersionString = "13.6";
PlayerSettings.iOS.buildNumber = string.Format("{0:yyMMdd}", System.DateTime.Now);
PlayerSettings.iOS.hideHomeButton = true;
PlayerSettings.bundleVersion = "1.0.0";
PlayerSettings.SetApplicationIdentifier(BuildTargetGroup.iOS, "com.test.mgame");
PlayerSettings.productName = "Hello World";
PlayerSettings.statusBarHidden = true;
PlayerSettings.allowedAutorotateToPortrait = true;
PlayerSettings.allowedAutorotateToPortraitUpsideDown = false;
PlayerSettings.allowedAutorotateToLandscapeRight = false;
PlayerSettings.allowedAutorotateToLandscapeLeft = false;
//PlayerSettings.GetArchitecture();
//https://docs.unity3d.com/ScriptReference/PlayerSettings.SetArchitecture.html
//Sets the BuildTargetPlatformGroup architecture.
//Sets an integer value associated with the architecture of a BuildTargetPlatformGroup. 0 - None, 1 - ARM64, 2 - Universal.
PlayerSettings.SetArchitecture(BuildTargetGroup.iOS, 1);
}
break;
}
}
//打包后处理
public void OnPostprocessBuild(BuildReport report)
{
Debug.Log("打包完成 ========================= 打包后处理");
switch (report.summary.platform)
{
case BuildTarget.Android:
{
}
break;
case BuildTarget.iOS:
{
}
break;
}
}
private string GetKeyStorePath()
{
System.IO.DirectoryInfo dirInfo = new System.IO.DirectoryInfo(Application.dataPath);
string path = System.IO.Path.Combine(dirInfo.Parent.FullName, "key");
return path;
}
}
如打包IOS渠道,Unity打包成Xcode 工程后,打开工程,可查看设置的内容,如下图:
其它参考:不使用XUPorter导出XCode工程
Unity导出XCode工程的时候自动修改工程设置添加依赖:
https://blog.csdn.net/langresser_king/article/details/52905111
------------------------------------------
Unity 自动打包 Part1—配置Xcode工程
https://blog.csdn.net/blog_lee/article/details/52400535
Unity 自动打包 Part2—构建IPA文件
https://blog.csdn.net/blog_lee/article/details/70231351
Unity 自动打包 Part3—上传Bugly 邮件通知
https://blog.csdn.net/blog_lee/article/details/76020334
------------------------------------------