Unity 一键打包

Unity基于Android平台一键打包功能

public class AutoBuildingApk 
{
    
    
    [MenuItem("Tools/AndroidDebug")]
    public static void AutoBuildingAndroidDebug()
    {
    
    
        Building(true);
    }

    [MenuItem("Tools/AndroidRelease")]
    public static void AutoBuildingAndroidRelease()
    {
    
    
        Building(false);
    }

    static void Building(bool isDevelopment) {
    
    
        //切换平台
        BuildTarget mBuildTarget = EditorUserBuildSettings.activeBuildTarget;
        if (mBuildTarget != BuildTarget.Android)
        {
    
    
            EditorUserBuildSettings.SwitchActiveBuildTarget(BuildTargetGroup.Android, BuildTarget.Android);
        }
        //设置参数
        PlayerSettings.companyName = "xm";
        PlayerSettings.Android.useCustomKeystore = false;//不使用正式签名
        PlayerSettings.productName = "appName";
        PlayerSettings.applicationIdentifier = "www.xm.com";//包名
        PlayerSettings.bundleVersion = "1.0.1";//版本号
        PlayerSettings.Android.bundleVersionCode =100001;
        //秘钥相关
        PlayerSettings.Android.keystoreName = ""; // 路径
        PlayerSettings.Android.keystorePass = ""; // 密钥密码
        PlayerSettings.Android.keyaliasName = ""; // 密钥别名
        PlayerSettings.Android.keyaliasPass = "";
        //设置宏定义
        PlayerSettings.SetScriptingDefineSymbols(NamedBuildTarget.Android, "");

        string outputPath = Application.dataPath + "/../Output/";
        BuildOptions buildOption = BuildOptions.None;
        string apk;
        if (isDevelopment)
        {
    
    
            buildOption |= BuildOptions.Development;
            apk = outputPath + "/" + PlayerSettings.productName + "_debug_";
        }
        else
        {
    
    
            buildOption &= ~BuildOptions.Development;
            apk = outputPath + "/" + PlayerSettings.productName + "_release_";
        }
        apk += DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".apk";
        try
        {
    
    
            BuildReport report = BuildPipeline.BuildPlayer(EditorBuildSettings.scenes, apk, BuildTarget.Android, buildOption);
            switch (report.summary.result)
            {
    
    
                case BuildResult.Cancelled:
                    Debug.Log("取消打包->Android");
                    break;
                case BuildResult.Failed:
                    string msg = "";
                    foreach (var file in report.files)
                    {
    
    
                        msg += file.path + "\n";
                    }
                    foreach (var step in report.steps)
                    {
    
    
                        foreach (var stepmsg in step.messages)
                        {
    
    
                            msg += "\n" + stepmsg.content;
                        }

                        msg += "\n";
                    }
                    Debug.LogError("打包失败->Android:【" + msg + "】");
                    break;
                case BuildResult.Unknown:
                    Debug.LogError("打包失败->Android:未知错误:");
                    break;
                case BuildResult.Succeeded:
                    Debug.Log("------------- 结束 BuildAPK -------------");
                    System.Diagnostics.Process.Start(outputPath);
                    break;
            }
        }
        catch (Exception e)
        {
    
    
            Debug.LogError("打包失败->Android:" + e.Message);
        }
    }
}

猜你喜欢

转载自blog.csdn.net/lcl20093466/article/details/128410452