static void Build() { EditorUserBuildSettings.SwitchActiveBuildTarget(BuildTargetGroup.Android, BuildTarget.Android); string keystoreName = string.Empty; string keystorePass = string.Empty; string keyaliasName = string.Empty; string keyaliasPass = string.Empty; foreach (string arg in Environment.GetCommandLineArgs()) { if (arg.StartsWith("keystoreName", StringComparison.OrdinalIgnoreCase)) { keystoreName = arg.Split('=')[1]; } else if (arg.StartsWith("keystorePass", StringComparison.OrdinalIgnoreCase)) { keystorePass = arg.Split('=')[1]; } else if (arg.StartsWith("keyaliasName", StringComparison.OrdinalIgnoreCase)) { keyaliasName = arg.Split('=')[1]; } else if (arg.StartsWith("keyaliasPass", StringComparison.OrdinalIgnoreCase)) { keyaliasPass = arg.Split('=')[1]; } } // Setting kestore information if (!string.IsNullOrEmpty(keystorePass) && !string.IsNullOrEmpty(keyaliasPass) && !string.IsNullOrEmpty(keyaliasName)) { PlayerSettings.Android.keystoreName = keystoreName; PlayerSettings.Android.keystorePass = keystorePass; PlayerSettings.Android.keyaliasName = keyaliasName; PlayerSettings.Android.keyaliasPass = keyaliasPass; } BuildGenernalSetting buildGenernalSetting = ApplyGeneralSettings(); AssetDatabase.Refresh(); string output = string.Format("{0}/../Publish/Android/Apks/{1}", Application.dataPath, buildGenernalSetting.outputPath); BuildPipeline.BuildPlayer(GetBuildScenes(), output, BuildTarget.Android, BuildOptions.None); }
private static BuildGenernalSetting ApplyGeneralSettings() { BuildGenernalSetting settings = new BuildGenernalSetting(); foreach (string arg in Environment.GetCommandLineArgs()) { if (arg.StartsWith("project_name", StringComparison.OrdinalIgnoreCase)) { settings.projectName = arg.Split('=')[1]; } else if (arg.StartsWith("identifier_prefix", StringComparison.OrdinalIgnoreCase)) { settings.prefix = arg.Split('=')[1]; } else if (arg.StartsWith("identifier_postfix", StringComparison.OrdinalIgnoreCase)) { settings.postfix = arg.Split('=')[1]; } else if (arg.StartsWith("channel", StringComparison.OrdinalIgnoreCase)) { settings.channel = arg.Split('=')[1]; } else if (arg.StartsWith("version", StringComparison.OrdinalIgnoreCase)) { settings.version = arg.Split('=')[1]; } else if (arg.StartsWith("generation", StringComparison.OrdinalIgnoreCase)) { string code = arg.Split('=')[1]; int.TryParse(code, out settings.generation); } else if (arg.StartsWith("publish", StringComparison.OrdinalIgnoreCase)) { settings.isDebug = true; string code = arg.Split('=')[1]; if (code == "release") { settings.isDebug = false; } } else if (arg.StartsWith("output_path", StringComparison.OrdinalIgnoreCase)) { settings.outputPath = arg.Split('=')[1]; } else if (arg.StartsWith("companyName", StringComparison.OrdinalIgnoreCase)) { settings.companyName = arg.Split('=')[1]; } else if (arg.StartsWith("productName", StringComparison.OrdinalIgnoreCase)) { settings.productName = arg.Split('=')[1]; } } string identifier = settings.prefix; if (!string.IsNullOrEmpty(settings.postfix)) { if (!string.IsNullOrEmpty(identifier)) { identifier += "." + settings.postfix; } else { identifier = settings.postfix; } } PlayerSettings.companyName = settings.companyName; PlayerSettings.productName = settings.productName; PlayerSettings.applicationIdentifier = identifier; PlayerSettings.bundleVersion = settings.version; PlayerSettings.Android.bundleVersionCode = settings.generation; return(settings); }