/// <summary> /// 修改AndroidManifest.xml,可通用 /// </summary> private static void ReplaceAndroidManifestPushInfo(BuildPlatformConfig config, string platformName, AppGameConfig gameCfg) { return; string tempContent = string.Empty; string filePath = Application.dataPath + config.pluginPath.Replace("Assets", "") + "AndroidManifest.xml"; if (!File.Exists(filePath)) { return; } string packConfigPath = string.Format(Directory.GetParent(UnityEngine.Application.dataPath) + "/PlatformData/{0}/android/default.pack", platformName); string packCfgJson = File.ReadAllText(packConfigPath); AndroidPackConfig packCfg = AndroidPackConfig.FromJson(packCfgJson); using (FileStream fs = new FileStream(filePath, FileMode.Open)) { using (StreamReader sr = new StreamReader(fs)) { tempContent = sr.ReadToEnd(); tempContent = tempContent.Replace("__your_package_name", packCfg.PackageName); } } using (StreamWriter sw = new StreamWriter(filePath)) { sw.Write(tempContent); } }
/// <summary> /// 设置buildsetting文字参数 可通用 /// </summary> private static void SetAndroidBuildSetting(AndroidPackConfig packCfg, AppGameConfig gameCfg, string packMode) { ResetConfig(); PlayerSettings.Android.androidIsGame = true; PlayerSettings.Android.disableDepthAndStencilBuffers = false; PlayerSettings.Android.showActivityIndicatorOnLoading = AndroidShowActivityIndicatorOnLoading.DontShow; PlayerSettings.Android.minSdkVersion = AndroidSdkVersions.AndroidApiLevel16; PlayerSettings.Android.targetDevice = AndroidTargetDevice.FAT; PlayerSettings.Android.preferredInstallLocation = AndroidPreferredInstallLocation.Auto; PlayerSettings.Android.forceInternetPermission = true; PlayerSettings.Android.forceSDCardPermission = true; #if UNITY_5_6_OR_NEWER PlayerSettings.SetApplicationIdentifier(BuildTargetGroup.Android, packCfg.PackageName); #else PlayerSettings.bundleIdentifier = packCfg.PackageName; #endif PlayerSettings.productName = packCfg.ProductName; PlayerSettings.companyName = packCfg.CompanyName; PlayerSettings.bundleVersion = gameCfg.GetAppVersion(); EditorUserBuildSettings.allowDebugging = false; #if UNITY_5_6_OR_NEWER EditorUserBuildSettings.androidBuildSystem = AndroidBuildSystem.Internal; EditorUserBuildSettings.androidBuildType = AndroidBuildType.Release; #endif EditorUserBuildSettings.connectProfiler = false; EditorUserBuildSettings.development = false; //PlayerSettings.Android.keystoreName = "user.keystore"; //PlayerSettings.Android.keystorePass = "******"; //PlayerSettings.Android.keyaliasName = "t1nemo"; //PlayerSettings.Android.keyaliasPass = "******"; if (packMode == "mono") { #if UNITY_5_6_OR_NEWER PlayerSettings.SetScriptingBackend(BuildTargetGroup.Android, ScriptingImplementation.Mono2x); #else PlayerSettings.SetPropertyInt("ScriptingBackend", (int)ScriptingImplementation.Mono2x, BuildTarget.Android); #endif } else { #if UNITY_5_6_OR_NEWER PlayerSettings.SetScriptingBackend(BuildTargetGroup.Android, ScriptingImplementation.IL2CPP); PlayerSettings.SetApiCompatibilityLevel(BuildTargetGroup.Android, ApiCompatibilityLevel.NET_2_0); #else PlayerSettings.SetPropertyInt("ScriptingBackend", (int)ScriptingImplementation.IL2CPP, BuildTarget.Android); PlayerSettings.apiCompatibilityLevel = ApiCompatibilityLevel.NET_2_0; #endif } }
/// <summary> /// 设置打包时unity的所有参数 /// </summary> private static void SetAndroidAppBuildSetting(BuildPlatformConfig config, string appSavePath, string platformName, string packMode, AppGameConfig gameCfg, bool isSplashEnabled, AppResSize resSize) { gameCfg.ResetAppVersion(); switch (resSize) { case AppResSize.Mini: gameCfg.DownloadPriority = 9800; break; case AppResSize.Mini_1: gameCfg.DownloadPriority = 9800; break; case AppResSize.Mini_2: gameCfg.DownloadPriority = 9000; break; case AppResSize.Mini_3: gameCfg.DownloadPriority = 7400; break; case AppResSize.Normal: gameCfg.DownloadPriority = 1000; break; default: break; } // load pack config string packConfigPath = string.Format(Directory.GetParent(UnityEngine.Application.dataPath) + "/PlatformData/{0}/android/default.pack", platformName); string packCfgJson = File.ReadAllText(packConfigPath); AndroidPackConfig packCfg = AndroidPackConfig.FromJson(packCfgJson); //设置安卓icon,动画 SetAndroidSpalshIcon(platformName, gameCfg); AssetDatabase.Refresh(); // save game config 永恒不save,全部由表自己控制 //File.WriteAllText(configGame_gameFull, gameCfg.ToJson()); //AssetDatabase.Refresh(); // build app SetAndroidBuildSetting(packCfg, gameCfg, packMode); AssetDatabase.Refresh(); Debug.LogWarning("Set AndroidApp BuildSetting success!"); }