Skip to content

Instantly share code, notes, and snippets.

@mihanvr
Last active November 12, 2020 11:06
Show Gist options
  • Save mihanvr/4a2bd4800cd74b65d3052fcdb92bb346 to your computer and use it in GitHub Desktop.
Save mihanvr/4a2bd4800cd74b65d3052fcdb92bb346 to your computer and use it in GitHub Desktop.
Save version of PreloadSigningAlias
using System.Collections.Generic;
using System.IO;
using System.Linq;
using UnityEditor;
using UnityEditor.Build;
using UnityEditor.Build.Reporting;
[InitializeOnLoad]
public class PreloadSigningAlias : IPostprocessBuildWithReport
{
private const string Dir = "Library";
private const string FileName = "keystore.ini";
private const string KeystorePass = nameof(PlayerSettings.Android.keystorePass);
private const string KeystoreName = nameof(PlayerSettings.Android.keystoreName);
private const string KeyaliasName = nameof(PlayerSettings.Android.keyaliasName);
private const string KeyaliasPass = nameof(PlayerSettings.Android.keyaliasPass);
public int callbackOrder { get; }
public void OnPostprocessBuild(BuildReport report)
{
var buildResult = report.summary.result;
var buildSuccess = buildResult == BuildResult.Succeeded || buildResult == BuildResult.Unknown;
if (!buildSuccess) return;
var keystorePass = PlayerSettings.Android.keystorePass;
var keystoreName = PlayerSettings.Android.keystoreName;
var keyaliasName = PlayerSettings.Android.keyaliasName;
var keyaliasPass = PlayerSettings.Android.keyaliasPass;
if (new List<string> {keystorePass, keystoreName, keyaliasPass, keyaliasName}.Any(string.IsNullOrEmpty)) return;
var kv = new Dictionary<string, string>
{
[KeystoreName] = keystoreName,
[KeystorePass] = keystorePass,
[KeyaliasName] = keyaliasName,
[KeyaliasPass] = keyaliasPass,
};
var content = string.Join("\n", kv.Select(pair => $"{pair.Key}={pair.Value}"));
Directory.CreateDirectory(Dir);
File.WriteAllText($"{Dir}/{FileName}", content);
}
static PreloadSigningAlias()
{
var path = $"{Dir}/{FileName}";
if (File.Exists(path))
{
var readAllLines = File.ReadAllLines(path);
foreach (var line in readAllLines)
{
var pair = line.Split(new[] {'='}, 2);
if (pair.Length != 2) continue;
switch (pair[0])
{
case KeystoreName:
PlayerSettings.Android.keystoreName = pair[1];
break;
case KeystorePass:
PlayerSettings.Android.keystorePass = pair[1];
break;
case KeyaliasName:
PlayerSettings.Android.keyaliasName = pair[1];
break;
case KeyaliasPass:
PlayerSettings.Android.keyaliasPass = pair[1];
break;
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment