parent
017d7177f4
commit
bc67eb6301
|
|
@ -10,12 +10,12 @@ namespace Guru.Editor
|
||||||
|
|
||||||
public class EditorGuruServiceIO
|
public class EditorGuruServiceIO
|
||||||
{
|
{
|
||||||
private static readonly string SourceConfigFileName = "guru-service";
|
internal static readonly string SourceConfigFileName = "guru-service";
|
||||||
private const string LocalServicesConfigPath = "Guru/Resources";
|
internal const string LocalServicesConfigPath = "Guru/Resources";
|
||||||
private const string SourceConfigExtension = ".json";
|
internal const string SourceConfigExtension = ".json";
|
||||||
private const string LocalConfigExtension = ".txt";
|
internal const string LocalConfigExtension = ".txt";
|
||||||
|
|
||||||
private static string DefaultFilePath =
|
internal static string DefaultFilePath =
|
||||||
Path.GetFullPath(Path.Combine(Application.dataPath, $"{SourceConfigFileName}{SourceConfigExtension}"));
|
Path.GetFullPath(Path.Combine(Application.dataPath, $"{SourceConfigFileName}{SourceConfigExtension}"));
|
||||||
|
|
||||||
internal static string SourceServiceFilePath = "";
|
internal static string SourceServiceFilePath = "";
|
||||||
|
|
@ -47,7 +47,7 @@ namespace Guru.Editor
|
||||||
/// 保存配置
|
/// 保存配置
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="config"></param>
|
/// <param name="config"></param>
|
||||||
internal static void SaveConfig(GuruServicesConfig config = null)
|
internal static void SaveConfig(GuruServicesConfig config = null, string savePath = "")
|
||||||
{
|
{
|
||||||
if (config == null)
|
if (config == null)
|
||||||
{
|
{
|
||||||
|
|
@ -59,12 +59,13 @@ namespace Guru.Editor
|
||||||
PrettyPrint = true,
|
PrettyPrint = true,
|
||||||
};
|
};
|
||||||
JsonMapper.ToJson(config, jw);
|
JsonMapper.ToJson(config, jw);
|
||||||
|
|
||||||
var json = jw.ToString();
|
var json = jw.ToString();
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(SourceServiceFilePath)) SourceServiceFilePath = DefaultFilePath;
|
if (string.IsNullOrEmpty(savePath)) savePath = SourceServiceFilePath;
|
||||||
File.WriteAllText(SourceServiceFilePath, json);
|
if (string.IsNullOrEmpty(savePath)) savePath = DefaultFilePath;
|
||||||
Debug.Log($"Save config to {SourceServiceFilePath}");
|
|
||||||
|
File.WriteAllText(savePath, json);
|
||||||
|
Debug.Log($"Save config to {savePath}");
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
namespace Guru.Editor
|
namespace Guru.Editor
|
||||||
{
|
{
|
||||||
using UnityEditor;
|
using UnityEditor;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
public class GuruEditorHelper
|
public class GuruEditorHelper
|
||||||
{
|
{
|
||||||
public static string GetFilePath(string filter)
|
public static string GetFilePath(string filter)
|
||||||
|
|
@ -13,5 +15,17 @@ namespace Guru.Editor
|
||||||
}
|
}
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void OpenPath(string path)
|
||||||
|
{
|
||||||
|
#if UNITY_EDITOR_OSX
|
||||||
|
EditorUtility.RevealInFinder(path);
|
||||||
|
return;
|
||||||
|
#endif
|
||||||
|
Application.OpenURL($"file://{path}");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -0,0 +1,479 @@
|
||||||
|
|
||||||
|
namespace Guru.Editor
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using UnityEditor;
|
||||||
|
using UnityEngine;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
|
public class GuruServiceConverterHelper
|
||||||
|
{
|
||||||
|
const string k_app_settings = "app_settings";
|
||||||
|
const string k_adjust_settings = "adjust_settings";
|
||||||
|
const string k_fb_settings = "fb_settings";
|
||||||
|
const string k_ad_settings = "ad_settings";
|
||||||
|
const string k_iap_settings = "iap_settings";
|
||||||
|
|
||||||
|
#region Export JSON
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 从 TSV 文件进行转化
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="tsvPath"></param>
|
||||||
|
/// <param name="savePath"></param>
|
||||||
|
public static void ConvertFromTSV(string tsvPath, string savePath = "")
|
||||||
|
{
|
||||||
|
if (!File.Exists(tsvPath))
|
||||||
|
{
|
||||||
|
EditorUtility.DisplayDialog("FILE NOT FOUND!", $"File not exist:\n{tsvPath}", "OK");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var guru_service = EditorGuruServiceIO.CreateEmpty();
|
||||||
|
|
||||||
|
var lines = File.ReadAllLines(tsvPath);
|
||||||
|
string line = "";
|
||||||
|
for (int index = 0; index < lines.Length; index++)
|
||||||
|
{
|
||||||
|
line = lines[index];
|
||||||
|
if (!IsInvalidLine(line))
|
||||||
|
{
|
||||||
|
//---------------- app_settings ----------------
|
||||||
|
if (line.StartsWith(k_app_settings))
|
||||||
|
{
|
||||||
|
index++;
|
||||||
|
while (!line.StartsWith(k_adjust_settings))
|
||||||
|
{
|
||||||
|
line = lines[index];
|
||||||
|
FillAppSettings(guru_service, line);
|
||||||
|
index++;
|
||||||
|
line = lines[index];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//---------------- adjust_settings ----------------
|
||||||
|
if (line.StartsWith(k_adjust_settings))
|
||||||
|
{
|
||||||
|
index++;
|
||||||
|
FillAdjustSettings(guru_service, lines, ref index);
|
||||||
|
}
|
||||||
|
//---------------- fb_settings ----------------
|
||||||
|
if (line.StartsWith(k_fb_settings))
|
||||||
|
{
|
||||||
|
index++;
|
||||||
|
FillFacebookSettings(guru_service, lines, ref index);
|
||||||
|
}
|
||||||
|
//---------------- ad_settings ----------------
|
||||||
|
if (line.StartsWith(k_ad_settings))
|
||||||
|
{
|
||||||
|
index++;
|
||||||
|
FillAdSettings(guru_service, lines, ref index);
|
||||||
|
}
|
||||||
|
//---------------- iap_settings ----------------
|
||||||
|
if (line.StartsWith(k_iap_settings))
|
||||||
|
{
|
||||||
|
index++;
|
||||||
|
FillProducts(guru_service, lines, ref index);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
EditorGuruServiceIO.SourceServiceFilePath = savePath;
|
||||||
|
EditorGuruServiceIO.SaveConfig(guru_service, savePath);
|
||||||
|
|
||||||
|
if (EditorUtility.DisplayDialog("CONVERT SUCCESS!", $"Export Json to:\n{savePath}", "OK"))
|
||||||
|
{
|
||||||
|
GuruEditorHelper.OpenPath(Directory.GetParent(savePath)?.FullName ?? Application.dataPath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// AppSettings 填充
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="settings"></param>
|
||||||
|
/// <param name="line"></param>
|
||||||
|
private static void FillAppSettings(GuruServicesConfig settings, string line)
|
||||||
|
{
|
||||||
|
// 对于空行和空值直接跳过
|
||||||
|
if (IsInvalidLine(line)) return;
|
||||||
|
|
||||||
|
string value = "";
|
||||||
|
if(settings.app_settings == null) settings.app_settings = new GuruAppSettings();
|
||||||
|
|
||||||
|
// 拾取值和注入
|
||||||
|
if (GetValue(line, "app_id", out value))
|
||||||
|
{
|
||||||
|
settings.app_settings.app_id = value;
|
||||||
|
}
|
||||||
|
else if (GetValue(line, "product_name", out value))
|
||||||
|
{
|
||||||
|
settings.app_settings.product_name = value;
|
||||||
|
}
|
||||||
|
else if (GetValue(line, "bundle_id", out value))
|
||||||
|
{
|
||||||
|
settings.app_settings.bundle_id = value;
|
||||||
|
}
|
||||||
|
else if (GetValue(line, "support_email", out value))
|
||||||
|
{
|
||||||
|
settings.app_settings.support_email = value;
|
||||||
|
}
|
||||||
|
else if (GetValue(line, "privacy_url", out value))
|
||||||
|
{
|
||||||
|
settings.app_settings.privacy_url = value;
|
||||||
|
}
|
||||||
|
else if (GetValue(line, "terms_url", out value))
|
||||||
|
{
|
||||||
|
settings.app_settings.terms_url = value;
|
||||||
|
}
|
||||||
|
else if (GetValue(line, "android_store", out value))
|
||||||
|
{
|
||||||
|
settings.app_settings.android_store = value;
|
||||||
|
}
|
||||||
|
else if (GetValue(line, "ios_store", out value))
|
||||||
|
{
|
||||||
|
settings.app_settings.ios_store = value;
|
||||||
|
}
|
||||||
|
else if (GetValue(line, "level_end_success_num", out value))
|
||||||
|
{
|
||||||
|
settings.app_settings.level_end_success_num = GetInt(value);
|
||||||
|
}
|
||||||
|
else if (GetValue(line, "enable_keywords", out value))
|
||||||
|
{
|
||||||
|
settings.app_settings.enable_keywords = GetBool(value);
|
||||||
|
}
|
||||||
|
else if (GetValue(line, "enable_firebase", out value))
|
||||||
|
{
|
||||||
|
settings.app_settings.enable_firebase = GetBool(value);
|
||||||
|
}
|
||||||
|
else if (GetValue(line, "enable_facebook", out value))
|
||||||
|
{
|
||||||
|
settings.app_settings.enable_facebook = GetBool(value);
|
||||||
|
}
|
||||||
|
else if (GetValue(line, "enable_adjust", out value))
|
||||||
|
{
|
||||||
|
settings.app_settings.enable_adjust = GetBool(value);
|
||||||
|
}
|
||||||
|
else if (GetValue(line, "enable_iap", out value))
|
||||||
|
{
|
||||||
|
settings.app_settings.enable_iap = GetBool(value);
|
||||||
|
}
|
||||||
|
else if (GetValue(line, "tch_020", out value))
|
||||||
|
{
|
||||||
|
settings.app_settings.tch_020 = GetDouble(value);
|
||||||
|
}
|
||||||
|
else if (GetValue(line, "using_uuid", out value))
|
||||||
|
{
|
||||||
|
settings.app_settings.using_uuid = GetBool(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// AdjustSettings 填充
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="settings"></param>
|
||||||
|
/// <param name="line"></param>
|
||||||
|
private static void FillAdjustSettings(GuruServicesConfig settings, string[] lines, ref int index)
|
||||||
|
{
|
||||||
|
if(settings.adjust_settings == null) settings.adjust_settings = new GuruAdjustSettings();
|
||||||
|
string[] list = null;
|
||||||
|
string line = lines[index];
|
||||||
|
bool pass = false;
|
||||||
|
List<string> events = new List<string>(20);
|
||||||
|
|
||||||
|
while (!lines[index].StartsWith(k_fb_settings))
|
||||||
|
{
|
||||||
|
line = lines[index];
|
||||||
|
if (!IsInvalidLine(line))
|
||||||
|
{
|
||||||
|
if (line.StartsWith("app_token"))
|
||||||
|
{
|
||||||
|
list = GetStringArray(line, 1, 2);
|
||||||
|
settings.adjust_settings.app_token = list;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
list = GetStringArray(line, 0, 3);
|
||||||
|
pass = list != null && !string.IsNullOrEmpty(list[0])
|
||||||
|
&& (!string.IsNullOrEmpty(list[1]) || !string.IsNullOrEmpty(list[2]));
|
||||||
|
if( pass) events.Add(string.Join(",", list));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
|
||||||
|
settings.adjust_settings.events = events.ToArray();
|
||||||
|
index--;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void FillFacebookSettings(GuruServicesConfig settings, string[] lines, ref int index)
|
||||||
|
{
|
||||||
|
string value = "";
|
||||||
|
if(settings.fb_settings == null) settings.fb_settings = new GuruFbSettings();
|
||||||
|
var line = "";
|
||||||
|
|
||||||
|
while (!lines[index].StartsWith(k_ad_settings))
|
||||||
|
{
|
||||||
|
line = lines[index];
|
||||||
|
if (!IsInvalidLine(line))
|
||||||
|
{
|
||||||
|
// 拾取值和注入
|
||||||
|
if (GetValue(line, "fb_app_id", out value))
|
||||||
|
{
|
||||||
|
settings.fb_settings.fb_app_id = value;
|
||||||
|
}
|
||||||
|
else if (GetValue(line, "fb_client_token", out value))
|
||||||
|
{
|
||||||
|
settings.fb_settings.fb_client_token = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
|
||||||
|
index--;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void FillAdSettings(GuruServicesConfig settings, string[] lines, ref int index)
|
||||||
|
{
|
||||||
|
string value = "";
|
||||||
|
if(settings.ad_settings == null) settings.ad_settings = new GuruAdSettings();
|
||||||
|
|
||||||
|
|
||||||
|
var line = lines[index];
|
||||||
|
// SDK Key
|
||||||
|
|
||||||
|
|
||||||
|
string[] max_ids_android = new string[3];
|
||||||
|
string[] max_ids_ios = new string[3];
|
||||||
|
string[] amazon_ids_android = new string[4];
|
||||||
|
string[] amazon_ids_ios = new string[4];
|
||||||
|
string[] pubmatic_ids_android = new string[3];
|
||||||
|
string[] pubmatic_ids_ios = new string[3];
|
||||||
|
string[] moloco_ids_android = new string[3];
|
||||||
|
string[] moloco_ids_ios = new string[3];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//------- 开始记录广告配置;
|
||||||
|
string[] arr;
|
||||||
|
while (!lines[index].StartsWith(k_iap_settings))
|
||||||
|
{
|
||||||
|
line = lines[index];
|
||||||
|
|
||||||
|
if (GetValue(line, "sdk_key", out value))
|
||||||
|
{
|
||||||
|
settings.ad_settings.sdk_key = value;
|
||||||
|
}
|
||||||
|
else if (line.StartsWith("admob_app_id"))
|
||||||
|
{
|
||||||
|
settings.ad_settings.admob_app_id = GetStringArray(line, 1, 2);
|
||||||
|
}
|
||||||
|
else if (line.StartsWith("max_bads"))
|
||||||
|
{
|
||||||
|
arr = GetStringArray(line, 1, 2);
|
||||||
|
max_ids_android[0] = arr[0];
|
||||||
|
max_ids_ios[0] = arr[1];
|
||||||
|
}
|
||||||
|
else if (line.StartsWith("max_iads"))
|
||||||
|
{
|
||||||
|
arr = GetStringArray(line, 1, 2);
|
||||||
|
max_ids_android[1] = arr[0];
|
||||||
|
max_ids_ios[1] = arr[1];
|
||||||
|
}
|
||||||
|
else if (line.StartsWith("max_rads"))
|
||||||
|
{
|
||||||
|
arr = GetStringArray(line, 1, 2);
|
||||||
|
max_ids_android[2] = arr[0];
|
||||||
|
max_ids_ios[2] = arr[1];
|
||||||
|
}
|
||||||
|
else if (line.StartsWith("amazon_app_id"))
|
||||||
|
{
|
||||||
|
arr = GetStringArray(line, 1, 2);
|
||||||
|
amazon_ids_android[0] = arr[0];
|
||||||
|
amazon_ids_ios[0] = arr[1];
|
||||||
|
}
|
||||||
|
else if (line.StartsWith("amazon_bads"))
|
||||||
|
{
|
||||||
|
arr = GetStringArray(line, 1, 2);
|
||||||
|
amazon_ids_android[1] = arr[0];
|
||||||
|
amazon_ids_ios[1] = arr[1];
|
||||||
|
}
|
||||||
|
else if (line.StartsWith("amazon_iads"))
|
||||||
|
{
|
||||||
|
arr = GetStringArray(line, 1, 2);
|
||||||
|
amazon_ids_android[2] = arr[0];
|
||||||
|
amazon_ids_ios[2] = arr[1];
|
||||||
|
}
|
||||||
|
else if (line.StartsWith("amazon_rads"))
|
||||||
|
{
|
||||||
|
arr = GetStringArray(line, 1, 2);
|
||||||
|
amazon_ids_android[3] = arr[0];
|
||||||
|
amazon_ids_ios[3] = arr[1];
|
||||||
|
}
|
||||||
|
else if (line.StartsWith("pubmatic_bads"))
|
||||||
|
{
|
||||||
|
arr = GetStringArray(line, 1, 2);
|
||||||
|
pubmatic_ids_android[0] = arr[0];
|
||||||
|
pubmatic_ids_ios[0] = arr[1];
|
||||||
|
}
|
||||||
|
else if (line.StartsWith("pubmatic_iads"))
|
||||||
|
{
|
||||||
|
arr = GetStringArray(line, 1, 2);
|
||||||
|
pubmatic_ids_android[1] = arr[0];
|
||||||
|
pubmatic_ids_ios[1] = arr[1];
|
||||||
|
}
|
||||||
|
else if (line.StartsWith("pubmatic_rads"))
|
||||||
|
{
|
||||||
|
arr = GetStringArray(line, 1, 2);
|
||||||
|
pubmatic_ids_android[2] = arr[0];
|
||||||
|
pubmatic_ids_ios[2] = arr[1];
|
||||||
|
}
|
||||||
|
else if (line.StartsWith("moloco_bads"))
|
||||||
|
{
|
||||||
|
arr = GetStringArray(line, 1, 2);
|
||||||
|
moloco_ids_android[0] = arr[0];
|
||||||
|
moloco_ids_ios[0] = arr[1];
|
||||||
|
}
|
||||||
|
else if (line.StartsWith("moloco_iads"))
|
||||||
|
{
|
||||||
|
arr = GetStringArray(line, 1, 2);
|
||||||
|
moloco_ids_android[1] = arr[0];
|
||||||
|
moloco_ids_ios[1] = arr[1];
|
||||||
|
}
|
||||||
|
else if (line.StartsWith("moloco_rads"))
|
||||||
|
{
|
||||||
|
arr = GetStringArray(line, 1, 2);
|
||||||
|
moloco_ids_android[2] = arr[0];
|
||||||
|
moloco_ids_ios[2] = arr[1];
|
||||||
|
}
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------- Fill all data -----------
|
||||||
|
settings.ad_settings.max_ids_android = max_ids_android;
|
||||||
|
settings.ad_settings.max_ids_ios = max_ids_ios;
|
||||||
|
settings.ad_settings.amazon_ids_android = amazon_ids_android;
|
||||||
|
settings.ad_settings.amazon_ids_ios = amazon_ids_ios;
|
||||||
|
settings.ad_settings.pubmatic_ids_android = pubmatic_ids_android;
|
||||||
|
settings.ad_settings.pubmatic_ids_ios = pubmatic_ids_ios;
|
||||||
|
settings.ad_settings.moloco_ids_android = moloco_ids_android;
|
||||||
|
settings.ad_settings.moloco_ids_ios = moloco_ids_ios;
|
||||||
|
|
||||||
|
index--;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void FillProducts(GuruServicesConfig settings, string[] lines, ref int index)
|
||||||
|
{
|
||||||
|
string line = "";
|
||||||
|
List<string> iaps = new List<string>(30);
|
||||||
|
|
||||||
|
string[] arr;
|
||||||
|
while (index < lines.Length)
|
||||||
|
{
|
||||||
|
line = lines[index];
|
||||||
|
if(IsInvalidLine(line)) continue;
|
||||||
|
arr = GetStringArray(line, 0, 7);
|
||||||
|
if(string.IsNullOrEmpty(arr[5])) arr[5] = "Store";
|
||||||
|
if(string.IsNullOrEmpty(arr[6])) arr[6] = "0";
|
||||||
|
iaps.Add(string.Join("," , arr));
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
settings.products = iaps.ToArray();
|
||||||
|
index--;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Utils
|
||||||
|
|
||||||
|
private static bool GetBool(string value)
|
||||||
|
{
|
||||||
|
return value.ToLower() == "true" || value == "1";
|
||||||
|
}
|
||||||
|
|
||||||
|
private static int GetInt(string value)
|
||||||
|
{
|
||||||
|
int val = 0;
|
||||||
|
int.TryParse(value, out val);
|
||||||
|
return val;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static double GetDouble(string value)
|
||||||
|
{
|
||||||
|
double val = 0;
|
||||||
|
double.TryParse(value, out val);
|
||||||
|
return val;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static bool IsInvalidLine(string line)
|
||||||
|
{
|
||||||
|
return (string.IsNullOrEmpty(line) || line.StartsWith("\t"));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static bool GetValue(string line, string key, out string value)
|
||||||
|
{
|
||||||
|
value = ""; // default
|
||||||
|
if (line.StartsWith(key))
|
||||||
|
{
|
||||||
|
value = line.Split('\t')[1];
|
||||||
|
if (string.IsNullOrEmpty(value)) value = "empty";
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string[] GetStringArray(string line, int startIndex = 0, int length = 0, string spliter = "\t")
|
||||||
|
{
|
||||||
|
if (IsInvalidLine(line)) return null;
|
||||||
|
|
||||||
|
var raw = line.Split(spliter);
|
||||||
|
if (length == 0) length = raw.Length;
|
||||||
|
|
||||||
|
var a = new List<string>(length);
|
||||||
|
for (int i = startIndex; i < length + startIndex; i++)
|
||||||
|
{
|
||||||
|
if (i < raw.Length)
|
||||||
|
{
|
||||||
|
a.Add(raw[i]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
a.Add("");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return a.ToArray();
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Menu Items
|
||||||
|
|
||||||
|
#if GURU_SDK_DEV
|
||||||
|
[MenuItem("Tools/Export Guru Service", false, 0 )]
|
||||||
|
#endif
|
||||||
|
private static void ExportJsonFile()
|
||||||
|
{
|
||||||
|
string saveDir = Path.GetFullPath($"{Application.dataPath}/../output");
|
||||||
|
string saveFile = Path.Combine(saveDir,$"guru-service____{DateTime.Now:yyyy-M-d-HH-mm}.json");
|
||||||
|
|
||||||
|
if(!Directory.Exists(saveDir)) Directory.CreateDirectory(saveDir);
|
||||||
|
|
||||||
|
string searchPath = "~/Downloads/";
|
||||||
|
string tsv = EditorUtility.OpenFilePanel("Load Guru Service TSV", searchPath, ".tsv");
|
||||||
|
if (!string.IsNullOrEmpty(tsv))
|
||||||
|
{
|
||||||
|
GuruServiceConverterHelper.ConvertFromTSV(tsv, saveFile);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8c7dc826ea0848f0a3bf05009fab6377
|
||||||
|
timeCreated: 1706856053
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using UnityEngine.Serialization;
|
|
||||||
|
|
||||||
namespace Guru
|
namespace Guru
|
||||||
{
|
{
|
||||||
|
|
@ -38,6 +37,7 @@ namespace Guru
|
||||||
&& products != null && products.Length > 0;
|
&& products != null && products.Length > 0;
|
||||||
public bool IsKeywordsEnabled() => app_settings != null && app_settings.enable_keywords;
|
public bool IsKeywordsEnabled() => app_settings != null && app_settings.enable_keywords;
|
||||||
//-------------------------------- 配置检测 -------------------------------
|
//-------------------------------- 配置检测 -------------------------------
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Serializable]
|
[Serializable]
|
||||||
|
|
@ -58,7 +58,7 @@ namespace Guru
|
||||||
public bool enable_facebook = true;
|
public bool enable_facebook = true;
|
||||||
public bool enable_adjust = true;
|
public bool enable_adjust = true;
|
||||||
public bool enable_iap = false;
|
public bool enable_iap = false;
|
||||||
public double tch020_val = 0;
|
public double tch_020 = 0;
|
||||||
public bool using_uuid = false;
|
public bool using_uuid = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -68,8 +68,8 @@ namespace Guru
|
||||||
public string[] app_token;
|
public string[] app_token;
|
||||||
public string[] events;
|
public string[] events;
|
||||||
|
|
||||||
public string AndroidToken => app_token != null && app_token.Length > 0 ? app_token[0] : "";
|
public string AndroidToken() => app_token != null && app_token.Length > 0 ? app_token[0] : "";
|
||||||
public string iOSToken => app_token != null && app_token.Length > 1 ? app_token[1] : "";
|
public string iOSToken() => app_token != null && app_token.Length > 1 ? app_token[1] : "";
|
||||||
}
|
}
|
||||||
|
|
||||||
[Serializable]
|
[Serializable]
|
||||||
|
|
@ -94,6 +94,4 @@ namespace Guru
|
||||||
public string[] moloco_ids_ios;
|
public string[] moloco_ids_ios;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -209,18 +209,19 @@ namespace Guru
|
||||||
if (null != _appServicesConfig.adjust_settings && null != GuruSettings)
|
if (null != _appServicesConfig.adjust_settings && null != GuruSettings)
|
||||||
{
|
{
|
||||||
// 更新 Adjust Tokens
|
// 更新 Adjust Tokens
|
||||||
GuruSettings.UpdateAdjustTokens(_appServicesConfig.adjust_settings.AndroidToken
|
GuruSettings.UpdateAdjustTokens(
|
||||||
, _appServicesConfig.adjust_settings.iOSToken);
|
_appServicesConfig.adjust_settings.AndroidToken(),
|
||||||
|
_appServicesConfig.adjust_settings.iOSToken());
|
||||||
// 更新 Adjust Events
|
// 更新 Adjust Events
|
||||||
GuruSettings.UpdateAdjustEvents(_appServicesConfig.adjust_settings.events);
|
GuruSettings.UpdateAdjustEvents(_appServicesConfig.adjust_settings.events);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (null != _appServicesConfig.app_settings)
|
if (null != _appServicesConfig.app_settings)
|
||||||
{
|
{
|
||||||
if (_appServicesConfig.app_settings.tch020_val > 0)
|
if (_appServicesConfig.app_settings.tch_020 > 0)
|
||||||
{
|
{
|
||||||
Analytics.EnableTch02Event = true;
|
Analytics.EnableTch02Event = true;
|
||||||
Analytics.SetTch02TargetValue(_appServicesConfig.app_settings.tch020_val);
|
Analytics.SetTch02TargetValue(_appServicesConfig.app_settings.tch_020);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 设置获取设备 UUID 的方法
|
// 设置获取设备 UUID 的方法
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue