Last active
February 13, 2024 07:43
-
-
Save IJEMIN/c2c9a77eae3cf49ced5d46ce676d868c to your computer and use it in GitHub Desktop.
Unity Build Settings (Keystore, Alias Password) Quick Load Window Script. Put this in Editor Folder.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System.Collections; | |
using System.Collections.Generic; | |
using System.IO; | |
using UnityEditor; | |
using UnityEditor.Build.Content; | |
using UnityEngine; | |
using UnityEngine.Serialization; | |
public class BuildHelper : EditorWindow | |
{ | |
[System.Serializable] | |
public class BuildSetting | |
{ | |
public string version; | |
public int versionCode; | |
public string keystorePath; | |
public string keystorePassword; | |
public string aliasName; | |
public string aliasPassword; | |
public BuildSetting() | |
{ | |
version = PlayerSettings.bundleVersion; | |
versionCode = PlayerSettings.Android.bundleVersionCode; | |
keystorePath = PlayerSettings.Android.keystoreName; | |
keystorePassword = PlayerSettings.Android.keystorePass; | |
aliasName = PlayerSettings.Android.keyaliasName; | |
aliasPassword = PlayerSettings.Android.keyaliasPass; | |
} | |
} | |
private string buildSettingPath; | |
public BuildSetting buildSetting; | |
[MenuItem("Window/Build Helper")] | |
static void Init() | |
{ | |
EditorWindow.GetWindow(typeof(BuildHelper)).Show(); | |
} | |
private void Awake() | |
{ | |
buildSettingPath = Path.Combine(Application.dataPath, "buildData.json"); | |
if (buildSetting == null) | |
{ | |
buildSetting = new BuildSetting(); | |
} | |
} | |
private void OnGUI() | |
{ | |
if (File.Exists(buildSettingPath)) | |
{ | |
if (GUILayout.Button("Load Build Setting from JSON")) | |
{ | |
var dataAsJson = File.ReadAllText(buildSettingPath); | |
buildSetting = JsonUtility.FromJson<BuildSetting>(dataAsJson); | |
} | |
} | |
GUILayout.Label("Current Target Build Settings"); | |
var serializedObject = new SerializedObject(this); | |
var serializedProperty = serializedObject.FindProperty(("buildSetting")); | |
EditorGUILayout.PropertyField(serializedProperty, true); | |
serializedObject.ApplyModifiedProperties(); | |
ApplyCustomBuildSettings(); | |
if (GUILayout.Button("Save Build Setting to JSON")) | |
{ | |
var jsonData = JsonUtility.ToJson(buildSetting,true); | |
File.WriteAllText(buildSettingPath, jsonData); | |
} | |
} | |
void ApplyCustomBuildSettings() | |
{ | |
PlayerSettings.bundleVersion = buildSetting.version; | |
PlayerSettings.Android.bundleVersionCode = buildSetting.versionCode; | |
PlayerSettings.iOS.buildNumber = buildSetting.versionCode.ToString(); | |
PlayerSettings.Android.keystoreName = buildSetting.keystorePath; | |
PlayerSettings.Android.keystorePass = buildSetting.keystorePassword; | |
PlayerSettings.Android.keyaliasName = buildSetting.aliasName; | |
PlayerSettings.Android.keyaliasPass = buildSetting.aliasPassword; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment