Unity3d的Build后处理,和场景build前处理

11 篇文章 1 订阅
5 篇文章 0 订阅

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

------------------------------------------

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值