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>();//是否打包
}