Fix typo. Use reflection to set buildAppBundle as Unity 2018.2 doesn't support it

pull/505/head
Andrew Kahr 2023-02-12 04:02:50 -08:00
parent 7d3a5d5876
commit bef90975a0
1 changed files with 11 additions and 5 deletions

View File

@ -20,7 +20,7 @@ namespace UnityBuilderAction.Input
if (options.TryGetValue("androidKeystorePass", out keystorePass) && !string.IsNullOrEmpty(keystorePass)) if (options.TryGetValue("androidKeystorePass", out keystorePass) && !string.IsNullOrEmpty(keystorePass))
PlayerSettings.Android.keystorePass = keystorePass; PlayerSettings.Android.keystorePass = keystorePass;
string keyAliasName; string keyaliasName;
if (options.TryGetValue("androidKeyaliasName", out keyaliasName) && !string.IsNullOrEmpty(keyaliasName)) if (options.TryGetValue("androidKeyaliasName", out keyaliasName) && !string.IsNullOrEmpty(keyaliasName))
PlayerSettings.Android.keyaliasName = keyaliasName; PlayerSettings.Android.keyaliasName = keyaliasName;
@ -47,19 +47,25 @@ namespace UnityBuilderAction.Input
string androidExportType; string androidExportType;
if (options.TryGetValue("androidExportType", out androidExportType) && !string.IsNullOrEmpty(androidExportType)) if (options.TryGetValue("androidExportType", out androidExportType) && !string.IsNullOrEmpty(androidExportType))
{ {
// Only exists in 2018.3 and above
FieldInfo buildAppBundle = typeof(EditorUserBuildSettings)
.GetField("buildAppBundle", System.Reflection.BindingFlags.Public | BindingFlags.Instance);
switch (androidExportType) switch (androidExportType)
{ {
case "androidStudioProject": case "androidStudioProject":
EditorUserBuildSettings.exportAsGoogleAndroidProject = true; EditorUserBuildSettings.exportAsGoogleAndroidProject = true;
EditorUserBuildSettings.buildAppBundle = false; if (buildAppBundle != null)
buildAppBundle.SetValue(null, false);
break; break;
case "androidAppBundle": case "androidAppBundle":
EditorUserBuildSettings.buildAppBundle = true;
EditorUserBuildSettings.exportAsGoogleAndroidProject = false; EditorUserBuildSettings.exportAsGoogleAndroidProject = false;
if (buildAppBundle != null)
buildAppBundle.SetValue(null, true);
break; break;
default: case "androidPackage":
EditorUserBuildSettings.exportAsGoogleAndroidProject = false; EditorUserBuildSettings.exportAsGoogleAndroidProject = false;
EditorUserBuildSettings.buildAppBundle = false; if (buildAppBundle != null)
buildAppBundle.SetValue(null, false);
break; break;
} }
} }