Unity一键打渠道包

忙了好一阵接入安卓sdk,也算积累了一些经验,在这里总结一下,如有不足,欢迎大大指出;

项目接了大大小小十多个sdk,我的想法是在android studio打好aar包,和资源文件还有AndroidManifest.xml保存成一个压缩包,用的时候解压缩到项目的Plugins/Android目录下,设置好需要的参数,一键出包或者出多个渠道包

接下来看代码把:

using UnityEngine;
using System.Collections;
using UnityEditor;
using System.IO;
using System;
using System.Collections.Generic;
using UnityEditor.Callbacks;

public class BuildWindow : EditorWindow
{
    enum Build_Asset
    {
        UseSign,
        OutPath,
        SignPath,
        keyaliasName,
    }

    //以下为各个SDK的压缩包名,改动可能导致打包失败,勿动!!!
    private const string XiaoMi = "AndroidXiaoMi.rar";
    private const string MeiZu = "AndroidMeiZu.rar";
    private const string OPPO = "AndroidOppo.rar";
    private const string HuaWei = "AndroidHuaWei.rar";
    private const string JinLi = "AndroidJinLi.rar";
    private const string VIVO = "AndroidVIVO.rar";
    private const string JinLiYouXi = "AndroidJinLiYouXi.rar";
    private const string QIHOO360 = "AndroidQIHOO360.rar";
    private const string QuickSDK = "AndroidQuickSDK.rar";
    private const string M4399 = "AndroidM4399.rar";
    private const string PapaWuFan = "AndroidPapa.rar";
    private const string Samsung = "AndroidSamsung.rar";
    private const string Lehaihai = "AndroidLehaihai.rar";
    private const string Nubiya = "AndroidNubiya.rar";
    private const string Yingyongbao = "AndroidYingyongbao.rar";
    //以下为各个SDK的包名,改动可能导致打包失败,勿动!!!
    private const string XiaoMi_Identifier = "com.magicbirds.master.sf.mi";
    private const string MeiZu_Identifier = "com.magicbirds.fighter.mz";
    private const string OPPO_Identifier = "com.magicbirds.fighters.nearme.gamecenter";
    private const string Huawei_Identifier = "com.magicbirds.master.huawei";
    private const string JinLi_Identifier = "com.magicbirds.fighters.jinli";
    private const string JinLiYouXi_Identifier = "com.magicbirds.fighters.jinli";
    private const string VIVO_Identifier = "com.magicbirds.fighter.vivo";
    private const string QIHOO360_Identifier = "com.magicbirds.master.sll";
    private const string QuickSDK_Identifier = "com.qk.test";
    private const string M4399_Identifier = "com.magicbirds.master.m4399";
    private const string PapaWuFan_Identifier = "com.magicbirds.master.papa";
    private const string Samsung_Identifier = "com.magicbirds.master.samsung";
    private const string Lehaihai_Identifier = "com.magicbirds.master.lhh";
    private const string Nubiya_Identifier = "com.magicbirds.master.nubia";
    private const string Yingyongbao_Identifier = "com.magicbirds.fighters.nearme.gamecenter";
    private void AddZipNameAndIdentifier()
    {
        ZipNameDict.Add(SDK_TYPE.XiaoMi, XiaoMi);
        IdentifierDict.Add(SDK_TYPE.XiaoMi, XiaoMi_Identifier);

        ZipNameDict.Add(SDK_TYPE.MeiZu, MeiZu);
        IdentifierDict.Add(SDK_TYPE.MeiZu, MeiZu_Identifier);

        ZipNameDict.Add(SDK_TYPE.Oppo, OPPO);
        IdentifierDict.Add(SDK_TYPE.Oppo, OPPO_Identifier);

        ZipNameDict.Add(SDK_TYPE.Huawei, HuaWei);
        IdentifierDict.Add(SDK_TYPE.Huawei, Huawei_Identifier);

        ZipNameDict.Add(SDK_TYPE.JinLiAibei, JinLi);
        IdentifierDict.Add(SDK_TYPE.JinLiAibei, JinLi_Identifier);

        ZipNameDict.Add(SDK_TYPE.VIVO, VIVO);
        IdentifierDict.Add(SDK_TYPE.VIVO, VIVO_Identifier);

        ZipNameDict.Add(SDK_TYPE.JinLiYouXi, JinLiYouXi);
        IdentifierDict.Add(SDK_TYPE.JinLiYouXi, JinLiYouXi_Identifier);

        ZipNameDict.Add(SDK_TYPE.QIHO360, QIHOO360);
        IdentifierDict.Add(SDK_TYPE.QIHO360, QIHOO360_Identifier);

        ZipNameDict.Add(SDK_TYPE.QuickSDK, QuickSDK);
        IdentifierDict.Add(SDK_TYPE.QuickSDK, QuickSDK_Identifier);

        ZipNameDict.Add(SDK_TYPE.M4399, M4399);
        IdentifierDict.Add(SDK_TYPE.M4399, M4399_Identifier);

        ZipNameDict.Add(SDK_TYPE.PapaWuFan, PapaWuFan);
        IdentifierDict.Add(SDK_TYPE.PapaWuFan, PapaWuFan_Identifier);

        ZipNameDict.Add(SDK_TYPE.SamsungAibei, Samsung);
        IdentifierDict.Add(SDK_TYPE.SamsungAibei, Samsung_Identifier);

        ZipNameDict.Add(SDK_TYPE.Lehaihai, Lehaihai);
        IdentifierDict.Add(SDK_TYPE.Lehaihai, Lehaihai_Identifier);

        ZipNameDict.Add(SDK_TYPE.Nubiya, Nubiya);
        IdentifierDict.Add(SDK_TYPE.Nubiya, Nubiya_Identifier);

        ZipNameDict.Add(SDK_TYPE.Yingyongbao, Yingyongbao);
        IdentifierDict.Add(SDK_TYPE.Yingyongbao, Yingyongbao_Identifier);
    }


    public static BuildWindow instance = null;

    public bool IsUnzipFile = false;
    private SDK_TYPE SDK_State = SDK_TYPE.None;

    private Dictionary<SDK_TYPE, string> ZipNameDict = new Dictionary<SDK_TYPE, string>();
    private Dictionary<SDK_TYPE, string> IdentifierDict = new Dictionary<SDK_TYPE, string>();


    //显示的行列
    private int row = 0;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值