diff --git a/Mobile.meta b/Mobile.meta
new file mode 100644
index 0000000..9479f35
--- /dev/null
+++ b/Mobile.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 0283e4b593c6a4822b0952332fb335cc
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Mobile/Editor.meta b/Mobile/Editor.meta
new file mode 100644
index 0000000..f3e92c0
--- /dev/null
+++ b/Mobile/Editor.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ca8a780f7566d49fc97837678e7f3974
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Mobile/Editor/NativeDependencies.xml b/Mobile/Editor/NativeDependencies.xml
new file mode 100644
index 0000000..efdb390
--- /dev/null
+++ b/Mobile/Editor/NativeDependencies.xml
@@ -0,0 +1,13 @@
+
+
+ Ï
+
+
+ https://repo.maven.apache.org/maven2
+
+
+
+
+
+
+
diff --git a/Mobile/Editor/NativeDependencies.xml.meta b/Mobile/Editor/NativeDependencies.xml.meta
new file mode 100644
index 0000000..fe29bb2
--- /dev/null
+++ b/Mobile/Editor/NativeDependencies.xml.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 8bcd652a555f84bf3874c5cde38edcdd
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Mobile/Editor/TapLicenseMobileProcessBuild.cs b/Mobile/Editor/TapLicenseMobileProcessBuild.cs
new file mode 100644
index 0000000..e2dc210
--- /dev/null
+++ b/Mobile/Editor/TapLicenseMobileProcessBuild.cs
@@ -0,0 +1,20 @@
+using System;
+using UnityEditor.Build.Reporting;
+using TapSDK.Core.Editor;
+
+namespace TapSDK.License.Mobile.Editor {
+ public class TapLicenseMobileProcessBuild : SDKLinkProcessBuild {
+ public override int callbackOrder => 0;
+
+ public override string LinkPath => "TapSDK/License/link.xml";
+
+ public override LinkedAssembly[] LinkedAssemblies => new LinkedAssembly[] {
+ new LinkedAssembly { Fullname = "TapSDK.License.Runtime" },
+ new LinkedAssembly { Fullname = "TapSDK.License.Mobile.Runtime" }
+ };
+
+ public override Func IsTargetPlatform => (report) => {
+ return BuildTargetUtils.IsSupportMobile(report.summary.platform);
+ };
+ }
+}
diff --git a/Mobile/Editor/TapLicenseMobileProcessBuild.cs.meta b/Mobile/Editor/TapLicenseMobileProcessBuild.cs.meta
new file mode 100644
index 0000000..cf021b2
--- /dev/null
+++ b/Mobile/Editor/TapLicenseMobileProcessBuild.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 40e60cd61abb74522a693604131aa1d8
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Mobile/Editor/TapSDK.License.Mobile.Editor.asmdef b/Mobile/Editor/TapSDK.License.Mobile.Editor.asmdef
new file mode 100644
index 0000000..cb01e8b
--- /dev/null
+++ b/Mobile/Editor/TapSDK.License.Mobile.Editor.asmdef
@@ -0,0 +1,17 @@
+{
+ "name": "TapSDK.License.Mobile.Editor",
+ "references": [
+ "GUID:56f3da7a178484843974054bafe77e73"
+ ],
+ "includePlatforms": [
+ "Editor"
+ ],
+ "excludePlatforms": [],
+ "allowUnsafeCode": false,
+ "overrideReferences": false,
+ "precompiledReferences": [],
+ "autoReferenced": true,
+ "defineConstraints": [],
+ "versionDefines": [],
+ "noEngineReferences": false
+}
\ No newline at end of file
diff --git a/Mobile/Editor/TapSDK.License.Mobile.Editor.asmdef.meta b/Mobile/Editor/TapSDK.License.Mobile.Editor.asmdef.meta
new file mode 100644
index 0000000..8745896
--- /dev/null
+++ b/Mobile/Editor/TapSDK.License.Mobile.Editor.asmdef.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 5f8c13d7fdc28424080d5ab381eaefaf
+AssemblyDefinitionImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Mobile/Runtime.meta b/Mobile/Runtime.meta
new file mode 100644
index 0000000..bf11511
--- /dev/null
+++ b/Mobile/Runtime.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 8d26ae4891888490abed0e16f23b9374
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Mobile/Runtime/TapLicenseMobile.cs b/Mobile/Runtime/TapLicenseMobile.cs
new file mode 100644
index 0000000..d784bbb
--- /dev/null
+++ b/Mobile/Runtime/TapLicenseMobile.cs
@@ -0,0 +1,159 @@
+using System.Collections.Generic;
+using TapSDK.License.Internal;
+using TapSDK.Core;
+
+namespace TapSDK.License.Mobile
+{
+ public class TapLicenseMobile : ITapLicenseBridge
+ {
+ public static string TAP_LICENSE_SERVICE = "BridgeLicenseService";
+
+ public static string TDS_LICENSE_SERVICE_CLZ = "com.taptap.sdk.license.internal.enginebridge.BridgeLicenseService";
+
+ public static string TDS_LICENSE_SERVICE_IMPL = "com.taptap.sdk.license.internal.enginebridge.BridgeLicenseServiceImpl";
+
+ public TapLicenseMobile()
+ {
+ EngineBridge.GetInstance().Register(TDS_LICENSE_SERVICE_CLZ, TDS_LICENSE_SERVICE_IMPL);
+ }
+
+ public void RegisterLicencesCallback(ITapLicenseCallback callback)
+ {
+ var command = new Command.Builder()
+ .Service(TAP_LICENSE_SERVICE)
+ .Method("registerLicenseCallback")
+ .Callback(true)
+ .OnceTime(false)
+ .CommandBuilder();
+ EngineBridge.GetInstance().CallHandler(command, (result) =>
+ {
+ if (result.code != Result.RESULT_SUCCESS)
+ {
+ return;
+ }
+
+ if (string.IsNullOrEmpty(result.content))
+ {
+ return;
+ }
+ var dic = Json.Deserialize(result.content) as Dictionary;
+ var success = SafeDictionary.GetValue(dic, "login") as string;
+ if (success.Equals("success"))
+ {
+ callback.OnLicenseSuccess();
+ }
+ });
+ }
+
+ public void RegisterDLCCallback(ITapDlcCallback callback)
+ {
+ var command = new Command.Builder();
+ command.Service(TAP_LICENSE_SERVICE);
+ command.Method("registerDLCCallback")
+ .Callback(true)
+ .OnceTime(false);
+
+ EngineBridge.GetInstance().CallHandler(command.CommandBuilder(), (result) =>
+ {
+ if (result.code != Result.RESULT_SUCCESS)
+ {
+ return;
+ }
+
+ if (string.IsNullOrEmpty(result.content))
+ {
+ return;
+ }
+ var dic = Json.Deserialize(result.content) as Dictionary;
+ var dlc = SafeDictionary.GetValue(dic, "orderDLC");
+ if (!string.IsNullOrEmpty(dlc))
+ {
+ var statusCode = SafeDictionary.GetValue(dic, "orderStatus");
+ callback.OnOrderCallBack(dlc, HandlePurchasedCode(statusCode));
+ return;
+ }
+ var code = SafeDictionary.GetValue(dic, "queryCode");
+ var queryListJson = SafeDictionary.GetValue(dic, "queryResult");
+ var queryListDic = Json.Deserialize(queryListJson) as Dictionary;
+ callback.OnQueryCallBack(HandleQueryCode(code), queryListDic);
+ });
+ }
+
+ private static TapLicenseQueryCode HandleQueryCode(int code)
+ {
+ switch (code)
+ {
+ case 0:
+ return TapLicenseQueryCode.QUERY_RESULT_OK;
+ case 1:
+ return TapLicenseQueryCode.QUERY_RESULT_NOT_INSTALL_TAPTAP;
+ case 2:
+ return TapLicenseQueryCode.QUERY_RESULT_ERR;
+ default:
+ return TapLicenseQueryCode.ERROR_CODE_UNDEFINED;
+ }
+ }
+
+ private static TapLicensePurchasedCode HandlePurchasedCode(int code)
+ {
+ switch (code)
+ {
+ case 0:
+ return TapLicensePurchasedCode.DLC_NOT_PURCHASED;
+ case 1:
+ return TapLicensePurchasedCode.DLC_PURCHASED;
+ case -1:
+ return TapLicensePurchasedCode.DLC_RETURN_ERROR;
+ default:
+ return TapLicensePurchasedCode.ERROR_CODE_UNDEFINED;
+ }
+ }
+
+ public void CheckLicense()
+ {
+ var command = new Command.Builder()
+ .Service(TAP_LICENSE_SERVICE)
+ .Method("checkLicense")
+ .CommandBuilder();
+ EngineBridge.GetInstance().CallHandler(command);
+ }
+
+ public void CheckLicenseForcibly(){
+ var command = new Command.Builder()
+ .Service(TAP_LICENSE_SERVICE)
+ .Method("checkLicenseForcibly")
+ .CommandBuilder();
+ EngineBridge.GetInstance().CallHandler(command);
+ }
+
+ public void QueryDLC(string[] skus)
+ {
+ var command = new Command.Builder()
+ .Service(TAP_LICENSE_SERVICE)
+ .Method("queryDLC")
+ .Args("skuList", skus)
+ .CommandBuilder();
+ EngineBridge.GetInstance().CallHandler(command);
+ }
+
+ public void PurchaseDLC(string sku)
+ {
+ var command = new Command.Builder()
+ .Service(TAP_LICENSE_SERVICE)
+ .Method("purchaseDLC")
+ .Args("skuId", sku)
+ .CommandBuilder();
+ EngineBridge.GetInstance().CallHandler(command);
+ }
+
+ public void SetTestEnvironment(bool isTest){
+ var command = new Command.Builder()
+ .Service(TAP_LICENSE_SERVICE)
+ .Method("setTestEnvironment")
+ .Args("testEnv", isTest)
+ .CommandBuilder();
+ EngineBridge.GetInstance().CallHandler(command);
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/Mobile/Runtime/TapLicenseMobile.cs.meta b/Mobile/Runtime/TapLicenseMobile.cs.meta
new file mode 100644
index 0000000..b9877e3
--- /dev/null
+++ b/Mobile/Runtime/TapLicenseMobile.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: d5c67656452dc465a99a4fed1bd49e4f
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Mobile/Runtime/TapSDK.License.Mobile.Runtime.asmdef b/Mobile/Runtime/TapSDK.License.Mobile.Runtime.asmdef
new file mode 100644
index 0000000..e144028
--- /dev/null
+++ b/Mobile/Runtime/TapSDK.License.Mobile.Runtime.asmdef
@@ -0,0 +1,20 @@
+{
+ "name": "TapSDK.License.Mobile.Runtime",
+ "references": [
+ "GUID:6f31234cd7bae42d2ae6f8b300cad891",
+ "GUID:7d5ef2062f3704e1ab74aac0e4d5a1a7",
+ "GUID:10560023d8780423cb943c7a324b69f2"
+ ],
+ "includePlatforms": [
+ "Android",
+ "iOS"
+ ],
+ "excludePlatforms": [],
+ "allowUnsafeCode": false,
+ "overrideReferences": false,
+ "precompiledReferences": [],
+ "autoReferenced": true,
+ "defineConstraints": [],
+ "versionDefines": [],
+ "noEngineReferences": false
+}
\ No newline at end of file
diff --git a/Mobile/Runtime/TapSDK.License.Mobile.Runtime.asmdef.meta b/Mobile/Runtime/TapSDK.License.Mobile.Runtime.asmdef.meta
new file mode 100644
index 0000000..5f9a62b
--- /dev/null
+++ b/Mobile/Runtime/TapSDK.License.Mobile.Runtime.asmdef.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: da3bb67bc7fc44bfbb393b69c11ddad2
+AssemblyDefinitionImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Runtime.meta b/Runtime.meta
new file mode 100644
index 0000000..8ff2fc0
--- /dev/null
+++ b/Runtime.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ebec4ffb8a32b4c0a947321ab0cd8fde
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Runtime/Internal.meta b/Runtime/Internal.meta
new file mode 100644
index 0000000..1d72f33
--- /dev/null
+++ b/Runtime/Internal.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 2cfe7a3c6343b44438f9fece2396729a
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Runtime/Internal/ITapLicenseBridge.cs b/Runtime/Internal/ITapLicenseBridge.cs
new file mode 100644
index 0000000..e272829
--- /dev/null
+++ b/Runtime/Internal/ITapLicenseBridge.cs
@@ -0,0 +1,19 @@
+
+namespace TapSDK.License.Internal {
+ public interface ITapLicenseBridge {
+ void RegisterLicencesCallback(ITapLicenseCallback callback);
+
+ void RegisterDLCCallback(ITapDlcCallback callback);
+
+ void CheckLicense();
+
+ void CheckLicenseForcibly();
+
+ void QueryDLC(string[] skus);
+
+ void PurchaseDLC(string sku);
+
+ void SetTestEnvironment(bool isTest);
+
+ }
+}
\ No newline at end of file
diff --git a/Runtime/Internal/ITapLicenseBridge.cs.meta b/Runtime/Internal/ITapLicenseBridge.cs.meta
new file mode 100644
index 0000000..069e94d
--- /dev/null
+++ b/Runtime/Internal/ITapLicenseBridge.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: c340838f9c5ea431dae137f6a77df72b
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Runtime/Public.meta b/Runtime/Public.meta
new file mode 100644
index 0000000..7e76042
--- /dev/null
+++ b/Runtime/Public.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 80e552eea1f22410f893964ab296c70b
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Runtime/Public/ITapDlcCallback.cs b/Runtime/Public/ITapDlcCallback.cs
new file mode 100644
index 0000000..eb01129
--- /dev/null
+++ b/Runtime/Public/ITapDlcCallback.cs
@@ -0,0 +1,8 @@
+using System.Collections.Generic;
+
+namespace TapSDK.License {
+ public interface ITapDlcCallback {
+ void OnQueryCallBack(TapLicenseQueryCode code, Dictionary queryList);
+ void OnOrderCallBack(string sku, TapLicensePurchasedCode status);
+ }
+}
diff --git a/Runtime/Public/ITapDlcCallback.cs.meta b/Runtime/Public/ITapDlcCallback.cs.meta
new file mode 100644
index 0000000..d512270
--- /dev/null
+++ b/Runtime/Public/ITapDlcCallback.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 929de5760339f4dcb9545eb24b18068e
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Runtime/Public/ITapLicenseCallback.cs b/Runtime/Public/ITapLicenseCallback.cs
new file mode 100644
index 0000000..6ee1bb1
--- /dev/null
+++ b/Runtime/Public/ITapLicenseCallback.cs
@@ -0,0 +1,5 @@
+namespace TapSDK.License {
+ public interface ITapLicenseCallback {
+ void OnLicenseSuccess();
+ }
+}
diff --git a/Runtime/Public/ITapLicenseCallback.cs.meta b/Runtime/Public/ITapLicenseCallback.cs.meta
new file mode 100644
index 0000000..7eef416
--- /dev/null
+++ b/Runtime/Public/ITapLicenseCallback.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 6fcbd9a77ff58440cb84d9b8a94b389b
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Runtime/Public/TapLicenseCode.cs b/Runtime/Public/TapLicenseCode.cs
new file mode 100644
index 0000000..b50ee7f
--- /dev/null
+++ b/Runtime/Public/TapLicenseCode.cs
@@ -0,0 +1,48 @@
+namespace TapSDK.License
+{
+ public enum TapLicenseQueryCode
+ {
+ /*
+ * 查询成功
+ */
+ QUERY_RESULT_OK = 0,
+
+ /**
+ * 未安装客户端,sdk有相应处理,正常不需要开发者做处理
+ */
+ QUERY_RESULT_NOT_INSTALL_TAPTAP = 1,
+
+ /**
+ * 查询失败
+ */
+ QUERY_RESULT_ERR = 2,
+
+ /*
+ * 未知错误
+ */
+ ERROR_CODE_UNDEFINED = 80000,
+ }
+
+ public enum TapLicensePurchasedCode
+ {
+ /*
+ * 支付失败
+ */
+ DLC_NOT_PURCHASED = 0,
+
+ /**
+ * 支付成功
+ */
+ DLC_PURCHASED = 1,
+
+ /**
+ * 支付出现问题
+ */
+ DLC_RETURN_ERROR = -1,
+
+ /*
+ * 未知错误
+ */
+ ERROR_CODE_UNDEFINED = 80000,
+ }
+}
\ No newline at end of file
diff --git a/Runtime/Public/TapLicenseCode.cs.meta b/Runtime/Public/TapLicenseCode.cs.meta
new file mode 100644
index 0000000..5a128d5
--- /dev/null
+++ b/Runtime/Public/TapLicenseCode.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: ec434f35e67af4080bb9ba255fd5b5bc
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Runtime/Public/TapTapLicense.cs b/Runtime/Public/TapTapLicense.cs
new file mode 100644
index 0000000..603c271
--- /dev/null
+++ b/Runtime/Public/TapTapLicense.cs
@@ -0,0 +1,49 @@
+using TapSDK.License.Internal;
+using TapSDK.Core.Internal.Utils;
+
+namespace TapSDK.License {
+ public class TapTapLicense {
+
+ public static readonly string Version = "4.3.10";
+
+ static readonly ITapLicenseBridge license;
+
+ static TapTapLicense() {
+ license = BridgeUtils.CreateBridgeImplementation(typeof(ITapLicenseBridge), "TapSDK.License")
+ as ITapLicenseBridge;
+ }
+
+ public static void RegisterLicenseCallBack(ITapLicenseCallback callback) {
+ license.RegisterLicencesCallback(callback);
+ }
+
+ public static void RegisterDLCCallback(ITapDlcCallback callback) {
+ license.RegisterDLCCallback(callback);
+ }
+
+
+ public static void CheckLicense(bool force = false) {
+ if(force){
+ license.CheckLicenseForcibly();
+ }else{
+ license.CheckLicense();
+ }
+ }
+
+
+
+ public static void QueryDLC(string[] dlcList) {
+ license.QueryDLC(dlcList);
+ }
+
+ public static void PurchaseDLC(string dlc) {
+ license.PurchaseDLC(dlc);
+ }
+
+ public static void SetTestEnvironment(bool isTest){
+ license.SetTestEnvironment(isTest);
+ }
+
+
+ }
+}
diff --git a/Runtime/Public/TapTapLicense.cs.meta b/Runtime/Public/TapTapLicense.cs.meta
new file mode 100644
index 0000000..bfb5b71
--- /dev/null
+++ b/Runtime/Public/TapTapLicense.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 468b63d3f30a640fc92d4dfab88a0472
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Runtime/TapSDK.License.Runtime.asmdef b/Runtime/TapSDK.License.Runtime.asmdef
new file mode 100644
index 0000000..e0c38e2
--- /dev/null
+++ b/Runtime/TapSDK.License.Runtime.asmdef
@@ -0,0 +1,15 @@
+{
+ "name": "TapSDK.License.Runtime",
+ "references": [
+ "GUID:7d5ef2062f3704e1ab74aac0e4d5a1a7"
+ ],
+ "includePlatforms": [],
+ "excludePlatforms": [],
+ "allowUnsafeCode": false,
+ "overrideReferences": false,
+ "precompiledReferences": [],
+ "autoReferenced": true,
+ "defineConstraints": [],
+ "versionDefines": [],
+ "noEngineReferences": false
+}
\ No newline at end of file
diff --git a/Runtime/TapSDK.License.Runtime.asmdef.meta b/Runtime/TapSDK.License.Runtime.asmdef.meta
new file mode 100644
index 0000000..0b34433
--- /dev/null
+++ b/Runtime/TapSDK.License.Runtime.asmdef.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 6f31234cd7bae42d2ae6f8b300cad891
+AssemblyDefinitionImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Standalone.meta b/Standalone.meta
new file mode 100644
index 0000000..18d0854
--- /dev/null
+++ b/Standalone.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 146077ddd8a1a49eeb9e91ae4b3c39ff
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Standalone/Editor.meta b/Standalone/Editor.meta
new file mode 100644
index 0000000..2cc2010
--- /dev/null
+++ b/Standalone/Editor.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: bc23cff82817f4c80948547d39736b65
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Standalone/Editor/TapLicenseStandaloneProcessBuild.cs b/Standalone/Editor/TapLicenseStandaloneProcessBuild.cs
new file mode 100644
index 0000000..df23a21
--- /dev/null
+++ b/Standalone/Editor/TapLicenseStandaloneProcessBuild.cs
@@ -0,0 +1,20 @@
+using System;
+using UnityEditor.Build.Reporting;
+using TapSDK.Core.Editor;
+
+namespace TapSDK.License.Standalone.Editor {
+ public class TapLicenseStandaloneProcessBuild : SDKLinkProcessBuild {
+ public override int callbackOrder => 0;
+
+ public override string LinkPath => "TapSDK/License/link.xml";
+
+ public override LinkedAssembly[] LinkedAssemblies => new LinkedAssembly[] {
+ new LinkedAssembly { Fullname = "TapSDK.License.Runtime" },
+ new LinkedAssembly { Fullname = "TapSDK.License.Standalone.Runtime" }
+ };
+
+ public override Func IsTargetPlatform => (report) => {
+ return BuildTargetUtils.IsSupportStandalone(report.summary.platform);
+ };
+ }
+}
diff --git a/Standalone/Editor/TapLicenseStandaloneProcessBuild.cs.meta b/Standalone/Editor/TapLicenseStandaloneProcessBuild.cs.meta
new file mode 100644
index 0000000..bb9192c
--- /dev/null
+++ b/Standalone/Editor/TapLicenseStandaloneProcessBuild.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 1198bf28ce00245459c3e960ad44bc33
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Standalone/Editor/TapSDK.License.Standalone.Editor.asmdef b/Standalone/Editor/TapSDK.License.Standalone.Editor.asmdef
new file mode 100644
index 0000000..8173c3c
--- /dev/null
+++ b/Standalone/Editor/TapSDK.License.Standalone.Editor.asmdef
@@ -0,0 +1,17 @@
+{
+ "name": "TapSDK.License.Standalone.Editor",
+ "references": [
+ "GUID:56f3da7a178484843974054bafe77e73"
+ ],
+ "includePlatforms": [
+ "Editor"
+ ],
+ "excludePlatforms": [],
+ "allowUnsafeCode": false,
+ "overrideReferences": false,
+ "precompiledReferences": [],
+ "autoReferenced": true,
+ "defineConstraints": [],
+ "versionDefines": [],
+ "noEngineReferences": false
+}
\ No newline at end of file
diff --git a/Standalone/Editor/TapSDK.License.Standalone.Editor.asmdef.meta b/Standalone/Editor/TapSDK.License.Standalone.Editor.asmdef.meta
new file mode 100644
index 0000000..48ba1a8
--- /dev/null
+++ b/Standalone/Editor/TapSDK.License.Standalone.Editor.asmdef.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 7b602e59c1f9941f39bdcb680893b926
+AssemblyDefinitionImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Standalone/Runtime.meta b/Standalone/Runtime.meta
new file mode 100644
index 0000000..178ce02
--- /dev/null
+++ b/Standalone/Runtime.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ebe50dc6539e1488c91a62bb1eb08721
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Standalone/Runtime/TapLicenseStandalone.cs b/Standalone/Runtime/TapLicenseStandalone.cs
new file mode 100644
index 0000000..87104e3
--- /dev/null
+++ b/Standalone/Runtime/TapLicenseStandalone.cs
@@ -0,0 +1,42 @@
+using TapSDK.License;
+using TapSDK.License.Internal;
+using TapSDK.Core;
+
+namespace TapSDK.License.Standalone {
+ public class TapLicenseStandalone : ITapLicenseBridge {
+ public void CheckLicense()
+ {
+ TapLogger.Warn($"{nameof(CheckLicense)} NOT implemented.");
+ }
+
+ public void CheckLicenseForcibly()
+ {
+ TapLogger.Warn($"{nameof(CheckLicenseForcibly)} NOT implemented.");
+ }
+
+ public void PurchaseDLC(string sku) {
+ TapLogger.Warn($"{nameof(PurchaseDLC)} NOT implemented.");
+ }
+
+ public void QueryDLC(string[] skus) {
+ TapLogger.Warn($"{nameof(QueryDLC)} NOT implemented.");
+ }
+
+ public void RegisterDLCCallback(ITapDlcCallback callback)
+ {
+ TapLogger.Warn($"{nameof(RegisterDLCCallback)} NOT implemented.");
+ }
+
+ public void RegisterLicencesCallback(ITapLicenseCallback callback)
+ {
+ TapLogger.Warn($"{nameof(RegisterLicencesCallback)} NOT implemented.");
+
+ }
+
+ public void SetTestEnvironment(bool isTest){
+ TapLogger.Warn($"{nameof(SetTestEnvironment)} NOT implemented.");
+ }
+
+
+ }
+}
diff --git a/Standalone/Runtime/TapLicenseStandalone.cs.meta b/Standalone/Runtime/TapLicenseStandalone.cs.meta
new file mode 100644
index 0000000..291cd51
--- /dev/null
+++ b/Standalone/Runtime/TapLicenseStandalone.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 384696cec333840aaafe8f36b891f2ab
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Standalone/Runtime/TapSDK.License.Standalone.Runtime.asmdef b/Standalone/Runtime/TapSDK.License.Standalone.Runtime.asmdef
new file mode 100644
index 0000000..85c9d7b
--- /dev/null
+++ b/Standalone/Runtime/TapSDK.License.Standalone.Runtime.asmdef
@@ -0,0 +1,22 @@
+{
+ "name": "TapSDK.License.Standalone.Runtime",
+ "references": [
+ "GUID:6f31234cd7bae42d2ae6f8b300cad891",
+ "GUID:7d5ef2062f3704e1ab74aac0e4d5a1a7"
+ ],
+ "includePlatforms": [
+ "Editor",
+ "LinuxStandalone64",
+ "macOSStandalone",
+ "WindowsStandalone32",
+ "WindowsStandalone64"
+ ],
+ "excludePlatforms": [],
+ "allowUnsafeCode": false,
+ "overrideReferences": false,
+ "precompiledReferences": [],
+ "autoReferenced": true,
+ "defineConstraints": [],
+ "versionDefines": [],
+ "noEngineReferences": false
+}
\ No newline at end of file
diff --git a/Standalone/Runtime/TapSDK.License.Standalone.Runtime.asmdef.meta b/Standalone/Runtime/TapSDK.License.Standalone.Runtime.asmdef.meta
new file mode 100644
index 0000000..6810df1
--- /dev/null
+++ b/Standalone/Runtime/TapSDK.License.Standalone.Runtime.asmdef.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 19ee08f6517424c7b916e9a1b4bc4b38
+AssemblyDefinitionImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..c1ad64c
--- /dev/null
+++ b/package.json
@@ -0,0 +1,11 @@
+{
+ "name": "com.taptap.sdk.license",
+ "displayName": "TapTapSDK License",
+ "description": "TapTapSDK License",
+ "version": "4.3.10",
+ "unity": "2019.4",
+ "license": "MIT",
+ "dependencies": {
+ "com.taptap.sdk.core": "4.3.10"
+ }
+}
\ No newline at end of file
diff --git a/package.json.meta b/package.json.meta
new file mode 100644
index 0000000..73e1ddd
--- /dev/null
+++ b/package.json.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 477244d59975e4b50b3cd9a5f41a8edb
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant: