You've already forked Commercialization.topon
update 1.1.25
This commit is contained in:
@@ -12,9 +12,6 @@ namespace AnyThink.Scripts.IntegrationManager.Editor
|
||||
{
|
||||
public class ATDataUtil
|
||||
{
|
||||
// private static string LAST_SELECT_COUNTRY_KEY = "country_key"; //当前选择的country
|
||||
// public static Network[] chinaNetworks;
|
||||
// public static Network[] nonChinaNetworks;
|
||||
|
||||
public static Network coreNetwork;
|
||||
|
||||
@@ -26,21 +23,69 @@ namespace AnyThink.Scripts.IntegrationManager.Editor
|
||||
bool isChinaCountry = isChina(country);
|
||||
|
||||
ServerNetworks serverNetworks = JsonUtility.FromJson<ServerNetworks>(netowrksJson);
|
||||
|
||||
Network network = pluginData.anyThink;
|
||||
if (network == null) {
|
||||
return null;
|
||||
}
|
||||
var android_version = pluginData.requestParams.androidVersion;
|
||||
var ios_version = pluginData.requestParams.iosVersion;
|
||||
|
||||
var androidSdkVersionList = serverNetworks.android_sdk;
|
||||
var iosSdkVersionList = serverNetworks.ios_sdk;
|
||||
|
||||
ServerNetworkSdk androidNeworkSdk = null;
|
||||
if (!string.IsNullOrEmpty(android_version)) {
|
||||
foreach(ServerNetworkSdk sdk in androidSdkVersionList) {
|
||||
if (Equals(sdk.version, android_version)) {
|
||||
androidNeworkSdk = sdk;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ServerNetworkSdk iosNeworkSdk = null;
|
||||
if (!string.IsNullOrEmpty(ios_version)) {
|
||||
foreach(ServerNetworkSdk sdk in iosSdkVersionList) {
|
||||
if (Equals(sdk.version, ios_version)) {
|
||||
iosNeworkSdk = sdk;
|
||||
}
|
||||
}
|
||||
}
|
||||
ATLog.log("parseNetworksJson() >>> androidNeworkSdk: " + androidNeworkSdk + " iosNeworkSdk: " + iosNeworkSdk);
|
||||
|
||||
ServerNetworkInfo[] serverNetworkInfoList;
|
||||
Network[] networks;
|
||||
if (isChinaCountry)
|
||||
{
|
||||
serverNetworkInfoList = serverNetworks.ChinaSdk;
|
||||
networks = formatServerNetworks(pluginData, country, serverNetworkInfoList);
|
||||
// networks = chinaNetworks;
|
||||
Network[] networks = mergeAndroidIosNetworks(getServerNetworkInfo(isChinaCountry, androidNeworkSdk, ATConfig.OS_ANDROID), getServerNetworkInfo(isChinaCountry, iosNeworkSdk, ATConfig.OS_IOS));
|
||||
Array.Sort(networks);
|
||||
ATLog.log("parseNetworksJson() >>> networks.Length: " + networks.Length);
|
||||
//处理本地已安装过的Core和Network数据
|
||||
var countrySettingData = pluginData.pluginSettingData.getCountrySettingData();
|
||||
|
||||
List<Network> networkList = new List<Network>();
|
||||
foreach(var item in networks) {
|
||||
if (Equals(item.Name, ATIntegrationManager.AnyThinkNetworkName)) {
|
||||
network.Name = item.Name;
|
||||
network.DisplayName = item.DisplayName;
|
||||
network.AndroidDownloadUrl = item.AndroidDownloadUrl;
|
||||
network.iOSDownloadloadUrl = item.iOSDownloadloadUrl;
|
||||
network.PluginFileName = item.PluginFileName;
|
||||
//本地是否有安装core
|
||||
var version = network.CurrentVersions;
|
||||
if (version == null) {
|
||||
version = new Versions();
|
||||
}
|
||||
version.Android = countrySettingData.android_version;
|
||||
version.Ios = countrySettingData.ios_version;
|
||||
network.CurrentVersions = version;
|
||||
network.LatestVersions = item.LatestVersions;
|
||||
} else {
|
||||
// ATLog.log("parseNetworksJson() >>> lastAndroidVersion: " + item.LatestVersions.Android + " lastIosVerion: " + item.LatestVersions.Ios);
|
||||
//本地是否有安装network
|
||||
ATConfig.initNetworkLocalData(item);
|
||||
networkList.Add(item);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
serverNetworkInfoList = serverNetworks.GlobalSdk;
|
||||
networks = formatServerNetworks(pluginData, country, serverNetworkInfoList);
|
||||
// networks = nonChinaNetworks;
|
||||
}
|
||||
return networks;
|
||||
|
||||
return networkList.ToArray();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
@@ -58,12 +103,21 @@ namespace AnyThink.Scripts.IntegrationManager.Editor
|
||||
try
|
||||
{
|
||||
var pluginData = new PluginData();
|
||||
// var anythink = new Network();
|
||||
|
||||
ServerPluginVersion serverPluginVersion = JsonUtility.FromJson<ServerPluginVersion>(serverPluginVersionJson);
|
||||
pluginData.networkUrlVersion = serverPluginVersion.networkUrlVersion;
|
||||
pluginData.country = ATConfig.getLocalCountry();
|
||||
// pluginData.country = 1;
|
||||
|
||||
pluginData.androidVersions = serverPluginVersion.android_versions;
|
||||
pluginData.iosVersions = serverPluginVersion.ios_versions;
|
||||
pluginData.pluginVersion = serverPluginVersion.pluginVersion;
|
||||
// 初始化本地的core包数据
|
||||
var settingData = ATConfig.getPluginSettingData();
|
||||
if (settingData == null) {
|
||||
settingData = new PluginSettingData();
|
||||
ATConfig.savePluginSettingData(settingData);
|
||||
}
|
||||
pluginData.country = settingData.curCountry;
|
||||
pluginData.pluginSettingData = settingData;
|
||||
pluginData.anyThink = initCoreNetworkWithLocalData(settingData);
|
||||
return pluginData;
|
||||
}
|
||||
catch (Exception e)
|
||||
@@ -75,209 +129,129 @@ namespace AnyThink.Scripts.IntegrationManager.Editor
|
||||
return null;
|
||||
}
|
||||
|
||||
public static Network[] formatServerNetworks(PluginData pluginData, int country, ServerNetworkInfo[] networkInfoList)
|
||||
{
|
||||
if (networkInfoList == null || networkInfoList.Length == 0)
|
||||
{
|
||||
return null;
|
||||
public static Network initCoreNetworkWithLocalData(PluginSettingData settingData) {
|
||||
var network = new Network();
|
||||
var versions = new Versions();
|
||||
var countryData = settingData.getCountrySettingData();
|
||||
if (countryData != null) {
|
||||
versions.Android = countryData.android_version;
|
||||
versions.Ios = countryData.ios_version;
|
||||
}
|
||||
int length = networkInfoList.Length;
|
||||
List<Network> networkList = new List<Network>();
|
||||
|
||||
for (int i = 0; i < length; i++)
|
||||
{
|
||||
Network network = new Network();
|
||||
ServerNetworkInfo serverInfo = networkInfoList[i];
|
||||
network.Name = serverInfo.name;
|
||||
network.DisplayName = serverInfo.displayName;
|
||||
network.DownloadUrl = serverInfo.downloadUrl;
|
||||
network.PluginFileName = serverInfo.pluginFileName;
|
||||
Versions latestVersion = new Versions();
|
||||
ServerNetworkVersion serverVersion = serverInfo.versions;
|
||||
if (serverVersion != null)
|
||||
{
|
||||
latestVersion.Android = serverVersion.android;
|
||||
latestVersion.Ios = serverVersion.ios;
|
||||
latestVersion.Unity = serverVersion.unity;
|
||||
}
|
||||
network.LatestVersions = latestVersion;
|
||||
|
||||
networkList.Add(network);
|
||||
}
|
||||
Network coreNetwork = networkList.First<Network>(n => n.Name.Equals(ATIntegrationManager.AnyThinkNetworkName));
|
||||
//先初始化core network
|
||||
if (coreNetwork != null)
|
||||
{
|
||||
// 获取当前已安装network的版本号
|
||||
Versions curVerions = ATConfig.getInstalledNetworkVersion(coreNetwork.Name, country);
|
||||
Versions latestVersion = coreNetwork.LatestVersions;
|
||||
if (latestVersion == null)
|
||||
{
|
||||
latestVersion = new Versions();
|
||||
}
|
||||
latestVersion.Unity = pluginData.pluginVersion;
|
||||
coreNetwork.LatestVersions = latestVersion;
|
||||
ATLog.log("coreNetwork latestVersion: " + latestVersion + " curVerions: " + curVerions);
|
||||
if (curVerions != null)
|
||||
{
|
||||
coreNetwork.CurrentVersions = curVerions;
|
||||
coreNetwork.CurrentToLatestVersionComparisonResult = getVersionComparisonResult(curVerions, latestVersion, false);
|
||||
}
|
||||
|
||||
ATPluginSetting.Instance.CoreNetwork = coreNetwork;
|
||||
}
|
||||
networkList.Remove(coreNetwork);
|
||||
//后初始化network
|
||||
foreach (var network in networkList)
|
||||
{
|
||||
Versions curVerion = ATConfig.getInstalledNetworkVersion(network.Name, country);
|
||||
network.CurrentVersions = curVerion;
|
||||
VersionComparisonResult result = getVersionComparisonResult(curVerion, network.LatestVersions, true);
|
||||
ATLog.log("formatServerNetworks() >>> compareResult: " + result);
|
||||
network.CurrentToLatestVersionComparisonResult = result;
|
||||
}
|
||||
|
||||
Network[] networks = (Network[])networkList.ToArray();
|
||||
//排序
|
||||
Array.Sort(networks);
|
||||
return networks;
|
||||
network.CurrentVersions = versions;
|
||||
network.Country = settingData.curCountry;
|
||||
return network;
|
||||
}
|
||||
|
||||
// public bool isChina()
|
||||
// {
|
||||
// int result = EditorPrefs.GetInt(LAST_SELECT_COUNTRY_KEY, 1);
|
||||
// return result == 1;
|
||||
// }
|
||||
public static ServerNetworkInfo[] getServerNetworkInfo(bool isChina, ServerNetworkSdk serverNetworks, int os) {
|
||||
if (serverNetworks == null) {
|
||||
return null;
|
||||
}
|
||||
if (isChina) {
|
||||
return serverNetworks.network_list.china;
|
||||
} else {
|
||||
return serverNetworks.network_list.nonchina;
|
||||
}
|
||||
}
|
||||
|
||||
private static IEnumerable<ServerNetworkInfo> GetUniqueNetworkInfo(ServerNetworkInfo[] androidNetworks, ServerNetworkInfo[] iosNetworks)
|
||||
{
|
||||
// Android独有的
|
||||
var uniqueToAndroid = androidNetworks.Where(a => !iosNetworks.Any(i => i.name == a.name));
|
||||
|
||||
// iOS独有的
|
||||
var uniqueToIos = iosNetworks.Where(i => !androidNetworks.Any(a => a.name == i.name));
|
||||
|
||||
// 合并结果
|
||||
return uniqueToAndroid.Concat(uniqueToIos);
|
||||
}
|
||||
|
||||
//合并Android和iOS的network数据
|
||||
public static Network[] mergeAndroidIosNetworks(ServerNetworkInfo[] androidNetworks, ServerNetworkInfo[] iosNetworks)
|
||||
{
|
||||
int a_length = 0;
|
||||
int i_length = 0;
|
||||
if (androidNetworks != null) {
|
||||
a_length = androidNetworks.Length;
|
||||
}
|
||||
if (iosNetworks != null) {
|
||||
i_length = iosNetworks.Length;
|
||||
}
|
||||
ATLog.log("mergeAndroidIosNetworks() >>> a_length: " + a_length + " i_length: " + i_length);
|
||||
|
||||
int max_length = Math.Max(a_length, i_length);
|
||||
int min_length = Math.Min(a_length, i_length);
|
||||
|
||||
var externalNetworks = androidNetworks;
|
||||
var internalNetworks = iosNetworks;
|
||||
if (a_length < i_length) {
|
||||
externalNetworks = iosNetworks;
|
||||
internalNetworks = androidNetworks;
|
||||
}
|
||||
|
||||
List<Network> networkList = new List<Network>();
|
||||
ATLog.log("mergeAndroidIosNetworks() >>> max_length: " + max_length + " min_length: " + min_length);
|
||||
for (int i = 0; i < max_length; i++) {
|
||||
var network = new Network();
|
||||
var iNetwork = externalNetworks[i];
|
||||
if (min_length == 0) {
|
||||
//只有集成一个平台
|
||||
network = flatServerNetwork(iNetwork, network);
|
||||
networkList.Add(network);
|
||||
} else {
|
||||
//合并相同的network
|
||||
for (int j = 0; j < min_length; j++) {
|
||||
var jNetwork = internalNetworks[j];
|
||||
if (Equals(iNetwork.name, jNetwork.name)) {
|
||||
network = flatServerNetwork(iNetwork, network);
|
||||
network = flatServerNetwork(jNetwork, network);
|
||||
networkList.Add(network);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//过滤平台的唯一network
|
||||
if (i_length > 0 && a_length > 0) {
|
||||
var serverNetworkInfos = GetUniqueNetworkInfo(androidNetworks, iosNetworks);
|
||||
foreach (var serverNetworkInfo in serverNetworkInfos)
|
||||
{
|
||||
var network = new Network();
|
||||
networkList.Add(flatServerNetwork(serverNetworkInfo, network));
|
||||
}
|
||||
}
|
||||
|
||||
return networkList.ToArray();
|
||||
}
|
||||
|
||||
//后台下载数据转换成本地数据
|
||||
public static Network flatServerNetwork(ServerNetworkInfo serverInfo, Network network)
|
||||
{
|
||||
network.Name = serverInfo.name;
|
||||
network.DisplayName = serverInfo.displayName;
|
||||
network.Country = serverInfo.country;
|
||||
network.PluginFileName = serverInfo.pluginFileName;
|
||||
|
||||
var versions = network.LatestVersions;
|
||||
if (versions == null) {
|
||||
versions = new Versions();
|
||||
}
|
||||
if (serverInfo.os == ATConfig.OS_ANDROID) { //Android
|
||||
network.AndroidDownloadUrl = serverInfo.downloadUrl;
|
||||
versions.Android = serverInfo.version;
|
||||
} else { //iOS
|
||||
network.iOSDownloadloadUrl = serverInfo.downloadUrl;
|
||||
versions.Ios = serverInfo.version;
|
||||
}
|
||||
ATLog.log("flatServerNetwork() >>> name: " + network.Name + " androidVersion: " + versions.Android + " iosVersion: " + versions.Ios);
|
||||
network.LatestVersions = versions;
|
||||
return network;
|
||||
}
|
||||
|
||||
public static bool isChina(int country)
|
||||
{
|
||||
return country == ATConfig.CHINA_COUNTRY;
|
||||
}
|
||||
|
||||
public static VersionComparisonResult getVersionComparisonResult(Versions curVersion, Versions latestVersion, bool isNetwork = false)
|
||||
{
|
||||
if (curVersion == null || latestVersion == null)
|
||||
{
|
||||
return VersionComparisonResult.Equal;
|
||||
}
|
||||
string curUnity = curVersion.Unity;
|
||||
string latestUnity = latestVersion.Unity;
|
||||
string curAndroid = curVersion.Android;
|
||||
string latestAndroid = latestVersion.Android;
|
||||
string curIos = curVersion.Ios;
|
||||
string latestIos = latestVersion.Ios;
|
||||
|
||||
VersionComparisonResult compareVersionResult = VersionComparisonResult.Equal;
|
||||
if (isNetwork)
|
||||
{
|
||||
if (string.IsNullOrEmpty(curUnity) || string.IsNullOrEmpty(latestUnity))
|
||||
{
|
||||
return VersionComparisonResult.Equal;
|
||||
}
|
||||
compareVersionResult = CompareUnityMediationVersions(curVersion.Unity, latestVersion.Unity);
|
||||
}
|
||||
else
|
||||
{
|
||||
var unityVersionComparison = CompareVersions(curUnity, latestUnity);
|
||||
var androidVersionComparison = CompareVersions(curAndroid, latestAndroid);
|
||||
var iosVersionComparison = CompareVersions(curIos, latestIos);
|
||||
|
||||
if (unityVersionComparison == VersionComparisonResult.Equal &&
|
||||
androidVersionComparison == VersionComparisonResult.Equal &&
|
||||
iosVersionComparison == VersionComparisonResult.Equal)
|
||||
{
|
||||
compareVersionResult = VersionComparisonResult.Equal;
|
||||
}
|
||||
else if (unityVersionComparison == VersionComparisonResult.Lesser ||
|
||||
androidVersionComparison == VersionComparisonResult.Lesser ||
|
||||
iosVersionComparison == VersionComparisonResult.Lesser)
|
||||
{
|
||||
compareVersionResult = VersionComparisonResult.Lesser;
|
||||
}
|
||||
else
|
||||
{
|
||||
compareVersionResult = VersionComparisonResult.Greater;
|
||||
}
|
||||
}
|
||||
return compareVersionResult;
|
||||
}
|
||||
|
||||
// public static long compareVersionToInt(string currentVersion, string currentNewVersion)
|
||||
// {
|
||||
// if (currentVersion == null || currentVersion.Length == 0
|
||||
// || currentNewVersion == null || currentNewVersion.Length == 0)
|
||||
// {
|
||||
// return 0;
|
||||
// }
|
||||
|
||||
// ATLog.log("compareVersionToInt() >>> before curVersion: " + currentVersion + " curNewVersion: " + currentNewVersion);
|
||||
// string curVersion = currentVersion.Replace(".", "").Replace("_", "").Replace("android", "").Replace("ios", "").Replace(" ", "");
|
||||
// string curNewVersion = currentNewVersion.Replace(".", "").Replace("_", "").Replace("android", "").Replace("ios", "").Replace(" ", "");
|
||||
// ATLog.log("compareVersionToInt() >>> after curVersion: " + curVersion + " curNewVersion: " + curNewVersion);
|
||||
// long intCurVersion = long.Parse(curVersion);
|
||||
// long intNewVersion = long.Parse(curNewVersion);
|
||||
// return intNewVersion - intCurVersion;
|
||||
// }
|
||||
|
||||
//比较Unity集成的版本
|
||||
public static VersionComparisonResult CompareUnityMediationVersions(string versionA, string versionB)
|
||||
{
|
||||
if (versionA.Equals(versionB)) return VersionComparisonResult.Equal;
|
||||
|
||||
// Unity version would be of format: android_w.x.y.z_ios_a.b.c.d
|
||||
// For Android only versions it would be: android_w.x.y.z
|
||||
// For iOS only version it would be: ios_a.b.c.d
|
||||
|
||||
// After splitting into their respective components, the versions would be at the odd indices.
|
||||
var versionAComponents = versionA.Split('_').ToList();
|
||||
var versionBComponents = versionB.Split('_').ToList();
|
||||
|
||||
var androidComparison = VersionComparisonResult.Equal;
|
||||
if (versionA.Contains("android") && versionB.Contains("android"))
|
||||
{
|
||||
var androidVersionA = versionAComponents[1];
|
||||
var androidVersionB = versionBComponents[1];
|
||||
androidComparison = CompareVersions(androidVersionA, androidVersionB);
|
||||
|
||||
// Remove the Android version component so that iOS versions can be processed.
|
||||
versionAComponents.RemoveRange(0, 2);
|
||||
versionBComponents.RemoveRange(0, 2);
|
||||
}
|
||||
else if (versionA.Contains("android"))
|
||||
{
|
||||
androidComparison = VersionComparisonResult.Greater;
|
||||
|
||||
// Remove the Android version component so that iOS versions can be processed.
|
||||
versionAComponents.RemoveRange(0, 2);
|
||||
}
|
||||
else if (versionB.Contains("android"))
|
||||
{
|
||||
androidComparison = VersionComparisonResult.Lesser;
|
||||
|
||||
// Remove the Android version component so that iOS version can be processed.
|
||||
versionBComponents.RemoveRange(0, 2);
|
||||
}
|
||||
|
||||
var iosComparison = VersionComparisonResult.Equal;
|
||||
if (versionA.Contains("ios") && versionB.Contains("ios"))
|
||||
{
|
||||
var iosVersionA = versionAComponents[1];
|
||||
var iosVersionB = versionBComponents[1];
|
||||
iosComparison = CompareVersions(iosVersionA, iosVersionB);
|
||||
}
|
||||
else if (versionA.Contains("ios"))
|
||||
{
|
||||
iosComparison = VersionComparisonResult.Greater;
|
||||
}
|
||||
else if (versionB.Contains("ios"))
|
||||
{
|
||||
iosComparison = VersionComparisonResult.Lesser;
|
||||
}
|
||||
|
||||
|
||||
// If either one of the Android or iOS version is greater, the entire version should be greater.
|
||||
return (androidComparison == VersionComparisonResult.Greater || iosComparison == VersionComparisonResult.Greater) ? VersionComparisonResult.Greater : VersionComparisonResult.Lesser;
|
||||
}
|
||||
//只比较Android、iOS
|
||||
public static VersionComparisonResult CompareVersions(string versionA, string versionB)
|
||||
{
|
||||
@@ -286,22 +260,6 @@ namespace AnyThink.Scripts.IntegrationManager.Editor
|
||||
return VersionComparisonResult.Equal;
|
||||
}
|
||||
|
||||
// var versionAComponents = versionA.Replace(".", "");
|
||||
// var versionBComponents = versionB.Replace(".", "");
|
||||
// var charArrayA = versionAComponents.ToCharArray();
|
||||
// var charArrayB = versionBComponents.ToCharArray();
|
||||
|
||||
// for(var i = 0; i < charArrayA.Length; i++)
|
||||
// {
|
||||
// var aVersion = 0;
|
||||
// int.TryParse(charArrayA[i].ToString(), out aVersion);
|
||||
// var bVersion = 0;
|
||||
// int.TryParse(charArrayB[i].ToString(), out bVersion);
|
||||
|
||||
// if (aVersion < bVersion) return VersionComparisonResult.Lesser;
|
||||
// if (aVersion > bVersion) return VersionComparisonResult.Greater;
|
||||
// }
|
||||
|
||||
try
|
||||
{
|
||||
var aVersionArrays = versionA.Split('.');
|
||||
@@ -338,47 +296,43 @@ namespace AnyThink.Scripts.IntegrationManager.Editor
|
||||
ATLog.logError("CompareVersions failed: " + e.Message);
|
||||
}
|
||||
|
||||
// // Split the version string into beta component and the underlying version.
|
||||
// int piece;
|
||||
|
||||
// // Compare the non beta component of the version string.
|
||||
// var versionAComponents = versionA.Split('.').Select(version => int.TryParse(version, out piece) ? piece : 0).ToArray();
|
||||
// var versionBComponents = versionB.Split('.').Select(version => int.TryParse(version, out piece) ? piece : 0).ToArray();
|
||||
// var length = Mathf.Max(versionAComponents.Length, versionBComponents.Length);
|
||||
// for (var i = 0; i < length; i++)
|
||||
// {
|
||||
// var aComponent = i < versionAComponents.Length ? versionAComponents[i] : 0;
|
||||
// var bComponent = i < versionBComponents.Length ? versionBComponents[i] : 0;
|
||||
|
||||
// if (aComponent < bComponent) return VersionComparisonResult.Lesser;
|
||||
|
||||
// if (aComponent > bComponent) return VersionComparisonResult.Greater;
|
||||
// }
|
||||
|
||||
return VersionComparisonResult.Equal;
|
||||
}
|
||||
}
|
||||
|
||||
//后端下发的Plugin、android、iOS版本号
|
||||
//下发的插件数据:{"pluginVersion": "2.1.0", "platformName": "AnyThink", "ios_versions": ["6.2.88"], "android_versions": ["6.2.93"]}
|
||||
[Serializable]
|
||||
public class ServerPluginVersion
|
||||
{
|
||||
public string platformName;
|
||||
public string networkUrlVersion;
|
||||
// public string networkUrlVersion;
|
||||
public string pluginVersion;
|
||||
public string androidVersion;
|
||||
public string iosVersion;
|
||||
public string[] versionList;
|
||||
public string[] android_versions;
|
||||
public string[] ios_versions;
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public class ServerNetworks
|
||||
{
|
||||
public ServerNetworkInfo[] GlobalSdk;
|
||||
public ServerNetworkInfo[] ChinaSdk;
|
||||
public string platformName;
|
||||
public string version;
|
||||
public string plugin_version;
|
||||
public ServerNetworkSdk[] ios_sdk;
|
||||
public ServerNetworkSdk[] android_sdk;
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public class ServerNetworkSdk
|
||||
{
|
||||
public string version;
|
||||
public ServerNetworkListObj network_list;
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public class ServerNetworkListObj
|
||||
{
|
||||
public ServerNetworkInfo[] china;
|
||||
public ServerNetworkInfo[] nonchina;
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public class ServerNetworkInfo
|
||||
{
|
||||
@@ -386,7 +340,10 @@ namespace AnyThink.Scripts.IntegrationManager.Editor
|
||||
public string displayName;
|
||||
public string downloadUrl;
|
||||
public string pluginFileName;
|
||||
public ServerNetworkVersion versions;
|
||||
public string version;
|
||||
public int os;
|
||||
public int country;
|
||||
// public ServerNetworkVersion versions;
|
||||
}
|
||||
[Serializable]
|
||||
public class ServerNetworkVersion
|
||||
|
||||
Reference in New Issue
Block a user