Skip to content

Instantly share code, notes, and snippets.

@IJEMIN
Last active February 13, 2024 07:43
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save IJEMIN/c2c9a77eae3cf49ced5d46ce676d868c to your computer and use it in GitHub Desktop.
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.
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