public static SDKTool ( PostProcessorContext context, string command, string workingdir, string errorMsg ) : string | ||
context | PostProcessorContext | |
command | string | |
workingdir | string | |
errorMsg | string | |
return | string |
private void BuildApk(PostProcessorContext context) { bool flag = context.Get <bool>("DevelopmentPlayer"); AndroidLibraries libraries = context.Get <AndroidLibraries>("AndroidLibraries"); bool flag2 = PlayerSettings.Android.keyaliasName.Length != 0; string str = Path.Combine(Environment.CurrentDirectory, this._stagingArea); string[] first = new string[] { "apk", $"{str}/Package_unaligned.apk", "-z", $"{str}/assets.ap_", "-z", $"{str}/bin/resources.ap_", "-nf", $"{str}/libs", "-f", $"{str}/bin/classes.dex", "-v" }; foreach (string str2 in libraries.GetLibraryDirectories()) { string[] second = new string[] { "-nf", str2 }; first = first.Concat <string>(second).ToArray <string>(); } foreach (string str3 in libraries.GetAssetsDirectories()) { string[] textArray3 = new string[] { "-A", str3 }; first = first.Concat <string>(textArray3).ToArray <string>(); } if (flag2) { string str4 = !Path.IsPathRooted(PlayerSettings.Android.keystoreName) ? Path.Combine(Directory.GetCurrentDirectory(), PlayerSettings.Android.keystoreName) : PlayerSettings.Android.keystoreName; string[] textArray4 = new string[] { "-k", str4, "-kp", PlayerSettings.Android.keystorePass, "-kk", PlayerSettings.Android.keyaliasName, "-kkp", PlayerSettings.Android.keyaliasPass }; first = first.Concat <string>(textArray4).ToArray <string>(); } if (flag || Unsupported.IsDeveloperBuild()) { string[] textArray5 = new string[] { "-d" }; first = first.Concat <string>(textArray5).ToArray <string>(); } if (File.Exists(Path.Combine(this._stagingArea, "raw.ap_"))) { string[] textArray6 = new string[] { "-z", $"{str}/raw.ap_" }; first = first.Concat <string>(textArray6).ToArray <string>(); } string message = TasksCommon.SDKTool(context, first, this._stagingArea, "Failed to build apk."); string fileName = Path.Combine(this._stagingArea, "Package_unaligned.apk"); FileInfo info = new FileInfo(fileName); if (!File.Exists(fileName) || (info.Length == 0L)) { Debug.LogError(message); CancelPostProcess.AbortBuildPointToConsole("APK Builder Failed!", "Failed to build APK package."); } }
private void BuildObb(PostProcessorContext context) { bool flag = File.Exists(Path.Combine(this._stagingArea, "obb.ap_")); bool flag2 = File.Exists(Path.Combine(this._stagingArea, "rawobb.ap_")); if (flag || flag2) { string str = Path.Combine(Environment.CurrentDirectory, this._stagingArea); string[] first = new string[] { "apk", $"{str}/main.obb", "-u" }; if (flag) { string[] second = new string[] { "-z", $"{str}/obb.ap_" }; first = first.Concat <string>(second).ToArray <string>(); } if (flag2) { string[] textArray3 = new string[] { "-z", $"{str}/rawobb.ap_" }; first = first.Concat <string>(textArray3).ToArray <string>(); } string message = TasksCommon.SDKTool(context, first, this._stagingArea, "Failed to build OBB."); string fileName = Path.Combine(this._stagingArea, "main.obb"); FileInfo info = new FileInfo(fileName); if (!File.Exists(fileName) || (info.Length == 0L)) { Debug.LogError(message); CancelPostProcess.AbortBuildPointToConsole("OBB Builder Failed!", "Failed to build OBB package."); } if (info.Length >= 0x80000000L) { Debug.LogError(message); CancelPostProcess.AbortBuildPointToConsole("OBB Builder Failed!", "OBB file too big for Android Market (max 2GB)."); } AndroidXmlDocument document = context.Get <AndroidXmlDocument>("SettingsXml"); document.PatchStringRes("bool", TasksCommon.GetMD5HashOfEOCD(fileName), true.ToString()); document.Save(); } }
private void BuildDex(PostProcessorContext context) { string[] components = new string[] { TasksCommon.GetClassDirectory(context), "classes.jar" }; string[] textArray2 = new string[] { this._stagingArea, "bin", "classes.jar" }; FileUtil.CopyFileOrDirectory(Paths.Combine(components), Paths.Combine(textArray2)); string[] array = new string[] { "dx", "--dex", "--verbose", "--output=bin/classes.dex", "bin/classes.jar" }; if (Directory.Exists(Path.Combine(this._stagingArea, "bin/classes"))) { ArrayUtility.Add <string>(ref array, "bin/classes"); } if (Directory.Exists(Path.Combine(this._stagingArea, "plugins"))) { ArrayUtility.Add <string>(ref array, "plugins"); } foreach (string str in this._androidLibraries.GetLibraryDirectories()) { ArrayUtility.Add <string>(ref array, str); } foreach (string str2 in this._androidLibraries.GetCompiledJarFiles()) { ArrayUtility.Add <string>(ref array, str2); } TasksCommon.SDKTool(context, array, this._stagingArea, "Unable to convert classes into dex format."); }