Last active
November 12, 2020 11:06
-
-
Save mihanvr/4a2bd4800cd74b65d3052fcdb92bb346 to your computer and use it in GitHub Desktop.
Save version of PreloadSigningAlias
This file contains hidden or 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.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