项目003

BuildChannelInspector类中一键打包

  void StartBulid()
    {
        List<string> lvs = new List<string>();
        EditorBuildSettingsScene scene = null;
        for (int i = 0; i < EditorBuildSettings.scenes.Length; i++)
        {
            scene = EditorBuildSettings.scenes[i];
            lvs.Add(scene.path);
        }
        levels = lvs.ToArray();


        int len = pa.Build.Count;//选中打包的渠道个数

        for (int i = 0; i < len; i++)
        {
            if (pa.Build[i])
            {
                EChannel ch = pa.Channel[i];//名称
                string bundleId = pa.BundleId[i];//bundle
                PlayerSettings.applicationIdentifier = bundleId;
                PlayerSettings.Android.bundleVersionCode = 2;
                PlayerSettings.SetScriptingDefineSymbolsForGroup(BuildTargetGroup.Android, "CH_" + ch.ToString());
                if (pa.KeyStore[i] == EKeyStoreType.Defaut)
                    PlayerSettings.Android.keystoreName = "D:/Zombies/WozClient/ZombiesAndroidILRuntimeDev/taptap.keystore";
                else if (pa.KeyStore[i] == EKeyStoreType.HuaWei)
                    PlayerSettings.Android.keystoreName = "D:/Zombies/WozClient/ZombiesAndroidILRuntimeDev/huawei.keystore";

                PlayerSettings.Android.keystorePass = "mydream01";
                PlayerSettings.Android.keyaliasName = "taptap";
                PlayerSettings.Android.keyaliasPass = "mydream01";

                BuildAndroid(ch);

            }
        }
    }
    static void BuildAndroid(EChannel ch)
    {
        string path = Application.dataPath.Replace("/Assets", "") + "/Android/";

        if (!Directory.Exists(path))
        {
            Directory.CreateDirectory(path);
        }



        string appName = path + "WavesOfZombies_" + ch.ToString() + "_" + PlayerSettings.bundleVersion + "_" + System.DateTime.Now.ToString("yyyyMMddHHmmss") + ".apk";

        Debug.Log(appName);
        string result = BuildPipeline.BuildPlayer(levels, appName, BuildTarget.Android, BuildOptions.None);
        Debug.Log(result);
    }

所有的SDK渠道类

public class BuildChannel : ScriptableObject
{
    public List<EChannel> Channel = new List<EChannel>();//渠道名
    public List<EKeyStoreType> KeyStore = new List<EKeyStoreType>();//渠道类型
    public List<string> BundleId = new List<string>();//BundleId,渠道Id
    public List<bool> Build = new List<bool>();//是否打包

}

猜你喜欢

转载自blog.csdn.net/qq_35647121/article/details/81514767