diff --git a/.travis.yml b/.travis.yml
index 62955a2..5b0fad4 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -12,8 +12,10 @@ deploy:
api_key:
secure: U33UbFuAmwE/hsI3iYpUNLJ+3wkVBq5JxGd2Z03QU9jtYN+N1GCcBJ3oIsdyYZPDmwdqjcc/s2GGiy75NDljnaeI4/p+rfVw01e6Ht/CQPNioxqxmC3645YDsg8Iao0vrSP1aevurc/5Oq+DNk+s0DQn/sBK11ZxOO7dwxqBZqJSdYs6hXhenzC3qKMRw2Wu7Px/ETGbYSXlvVfmmMkw3CVutankT/QQPZM1u6uA8bJvcoPzOoUCuTMLfa+ie4O1WUYSwkyb+yYWjNkWhTo8b/scdVZjYmJ5tIIHP04AKump2kISBvXBysCdwScMvvZplJgVHc0x9qx+vvyGEWmKa3C4xDa5t0IwDHmApe6dPRc05WL9lwDh6KtiZ4vJEFvGfKPOXRmg4fDVnRIQHazMSFvFXgcwZoiPsMWnAvl45Cardbt1JLvlfGlnJ+wQ5RPev99LwvkXooJVqtEByR9AWozyGS8XFypbpFj2xpCe7ZJSmB8h0ElDsl2zmgWPeZkcOIFcVR2+2jl6B2XOnBWukxRUpeX1x+B4rDIKtTAHrkvtGNr5bb4Q6gUAQSqpvUDqV3gXdXW19H+yrlAImBFo6nS3qm/NzsVGmK+SaRzG6oOFfejW0NPnt2MdO0GV5s6L0CYp86Zpk/GrViO7AKjMqYfM2rwJS1rnLlxpTDoPcaA=
file:
- - "LeanCloud-SDK-Standard.zip"
- - "LeanCloud-SDK-Unity.zip"
+ - "LeanCloud-SDK-Storage-Standard.zip"
+ - "LeanCloud-SDK-Storage-Unity.zip"
+ - "LeanCloud-SDK-Realtime-Standard.zip"
+ - "LeanCloud-SDK-Realtime-Unity.zip"
skip_cleanup: true
on:
repo: leancloud/csharp-sdk
diff --git a/Common/Common-Unity/Common-Unity.csproj b/Common/Common-Unity/Common-Unity.csproj
new file mode 100644
index 0000000..63689bf
--- /dev/null
+++ b/Common/Common-Unity/Common-Unity.csproj
@@ -0,0 +1,36 @@
+
+
+
+ netstandard2.0
+ 0.1.0
+
+
+
+
+ AppRouter\LCAppServer.cs
+
+
+ AppRouter\LCAppRouter.cs
+
+
+ Http\LCHttpUtils.cs
+
+
+ Json\LCJsonUtils.cs
+
+
+ Log\LCLogger.cs
+
+
+ Log\LCLogLevel.cs
+
+
+ Task\LCTaskExtensions.cs
+
+
+
+
+ ..\..\UnityLibs\Newtonsoft.Json.dll
+
+
+
diff --git a/Common/AppRouter/LCAppRouter.cs b/Common/Common/AppRouter/LCAppRouter.cs
similarity index 100%
rename from Common/AppRouter/LCAppRouter.cs
rename to Common/Common/AppRouter/LCAppRouter.cs
diff --git a/Common/AppRouter/LCAppServer.cs b/Common/Common/AppRouter/LCAppServer.cs
similarity index 100%
rename from Common/AppRouter/LCAppServer.cs
rename to Common/Common/AppRouter/LCAppServer.cs
diff --git a/Common/Common.csproj b/Common/Common/Common.csproj
similarity index 100%
rename from Common/Common.csproj
rename to Common/Common/Common.csproj
diff --git a/Common/Http/LCHttpUtils.cs b/Common/Common/Http/LCHttpUtils.cs
similarity index 100%
rename from Common/Http/LCHttpUtils.cs
rename to Common/Common/Http/LCHttpUtils.cs
diff --git a/Common/Json/LCJsonUtils.cs b/Common/Common/Json/LCJsonUtils.cs
similarity index 100%
rename from Common/Json/LCJsonUtils.cs
rename to Common/Common/Json/LCJsonUtils.cs
diff --git a/Common/Task/LCTaskExtensions.cs b/Common/Common/Task/LCTaskExtensions.cs
similarity index 100%
rename from Common/Task/LCTaskExtensions.cs
rename to Common/Common/Task/LCTaskExtensions.cs
diff --git a/Common/Log/LCLogLevel.cs b/Common/Log/LCLogLevel.cs
deleted file mode 100644
index f43aaf5..0000000
--- a/Common/Log/LCLogLevel.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-namespace LeanCloud {
- ///
- /// 日志级别
- ///
- public enum LCLogLevel {
- ///
- /// 调试级别
- ///
- Debug,
- ///
- /// 警告级别
- ///
- Warn,
- ///
- /// 错误级别
- ///
- Error,
- }
-}
diff --git a/Common/Log/LCLogger.cs b/Common/Log/LCLogger.cs
deleted file mode 100644
index 1ffbcac..0000000
--- a/Common/Log/LCLogger.cs
+++ /dev/null
@@ -1,51 +0,0 @@
-using System;
-using System.Text;
-
-namespace LeanCloud {
- ///
- /// 日志类
- ///
- public static class LCLogger {
- ///
- /// 日志回调接口,方便开发者调试
- ///
- /// The log delegate.
- public static Action LogDelegate {
- get; set;
- }
-
- public static void Debug(string log) {
- LogDelegate?.Invoke(LCLogLevel.Debug, log);
- }
-
- public static void Debug(string format, params object[] args) {
- LogDelegate?.Invoke(LCLogLevel.Debug, string.Format(format, args));
- }
-
- public static void Warn(string log) {
- LogDelegate?.Invoke(LCLogLevel.Warn, log);
- }
-
- public static void Warn(string format, params object[] args) {
- LogDelegate?.Invoke(LCLogLevel.Warn, string.Format(format, args));
- }
-
- public static void Error(string log) {
- LogDelegate?.Invoke(LCLogLevel.Error, log);
- }
-
- public static void Error(string format, params object[] args) {
- LogDelegate?.Invoke(LCLogLevel.Error, string.Format(format, args));
- }
-
- public static void Error(Exception e) {
- StringBuilder sb = new StringBuilder();
- sb.Append(e.GetType());
- sb.Append("\n");
- sb.Append(e.Message);
- sb.Append("\n");
- sb.Append(e.StackTrace);
- Error(sb.ToString());
- }
- }
-}
diff --git a/Common/Task/SingleThreadSynchronizationContext.cs b/Common/Task/SingleThreadSynchronizationContext.cs
deleted file mode 100644
index cd08e62..0000000
--- a/Common/Task/SingleThreadSynchronizationContext.cs
+++ /dev/null
@@ -1,43 +0,0 @@
-using System;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Collections.Concurrent;
-using System.Collections.Generic;
-
-namespace LeanCloud.Common {
- ///
- /// 单线程环境,用于控制台应用 await 返回
- ///
- public class SingleThreadSynchronizationContext : SynchronizationContext {
- private readonly BlockingCollection> queue = new BlockingCollection>();
-
- public override void Post(SendOrPostCallback d, object state) {
- queue.Add(new KeyValuePair(d, state));
- }
-
- public void RunOnCurrentThread() {
- while (queue.TryTake(out KeyValuePair workItem, Timeout.Infinite)) {
- workItem.Key(workItem.Value);
- }
- }
-
- public void Complete() {
- queue.CompleteAdding();
- }
-
- public static void Run(Func func) {
- SynchronizationContext prevContext = Current;
- try {
- SingleThreadSynchronizationContext syncContext = new SingleThreadSynchronizationContext();
- SetSynchronizationContext(syncContext);
-
- Task t = func();
- syncContext.RunOnCurrentThread();
-
- t.GetAwaiter().GetResult();
- } finally {
- SetSynchronizationContext(prevContext);
- }
- }
- }
-}
diff --git a/Doxyfile b/Doxyfile
index 6b19091..af6cc49 100644
--- a/Doxyfile
+++ b/Doxyfile
@@ -6,7 +6,7 @@ OUTPUT_DIRECTORY = ./Doc/
EXTRACT_ALL = yes
EXTRACT_PRIVATE = no
EXTRACT_STATIC = yes
-INPUT = ./Storage/
+INPUT = ./Storage/Storage/ ./Realtime/Realtime/
#Do not add anything here unless you need to. Doxygen already covers all
#common formats like .c/.cc/.cxx/.c++/.cpp/.inl/.h/.hpp
FILE_PATTERNS =
diff --git a/Realtime/Realtime-Unity/Realtime-Unity.csproj b/Realtime/Realtime-Unity/Realtime-Unity.csproj
new file mode 100644
index 0000000..612b15c
--- /dev/null
+++ b/Realtime/Realtime-Unity/Realtime-Unity.csproj
@@ -0,0 +1,130 @@
+
+
+
+ netstandard2.0
+ 0.1.0
+
+
+
+
+ Conversation\LCIMConversation.cs
+
+
+ Conversation\LCIMServiceConversation.cs
+
+
+ Conversation\LCIMConversationMemberInfo.cs
+
+
+ Conversation\LCIMConversationQuery.cs
+
+
+ Conversation\LCIMChatRoom.cs
+
+
+ Conversation\LCIMMessageQueryOptions.cs
+
+
+ Conversation\LCIMTemporaryConversation.cs
+
+
+ Internal\WebSocket\LCWebSocketClient.cs
+
+
+ Internal\Connection\LCHeartBeat.cs
+
+
+ Internal\Connection\LCConnection.cs
+
+
+ Internal\Protocol\Messages2Proto.cs
+
+
+ Internal\Controller\LCIMSessionController.cs
+
+
+ Internal\Controller\LCIMController.cs
+
+
+ Internal\Controller\LCIMMessageController.cs
+
+
+ Internal\Controller\LCIMConversationController.cs
+
+
+ Internal\Controller\LCIMGoAwayController.cs
+
+
+ Internal\Router\LCRTMServer.cs
+
+
+ Internal\Router\LCRTMRouter.cs
+
+
+ Message\LCIMVideoMessage.cs
+
+
+ Message\LCIMMessageSendOptions.cs
+
+
+ Message\LCIMBinaryMessage.cs
+
+
+ Message\LCIMFileMessage.cs
+
+
+ Message\LCIMRecalledMessage.cs
+
+
+ Message\LCIMMessage.cs
+
+
+ Message\LCIMTextMessage.cs
+
+
+ Message\LCIMImageMessage.cs
+
+
+ Message\LCIMAudioMessage.cs
+
+
+ Message\LCIMLocationMessage.cs
+
+
+ Message\LCIMTypedMessage.cs
+
+
+ Result\LCIMOperationFailure.cs
+
+
+ Result\LCIMPageResult.cs
+
+
+ Result\LCIMPartiallySuccessResult.cs
+
+
+ Signature\LCIMSignature.cs
+
+
+ Signature\ILCIMSignatureFactory.cs
+
+
+ Signature\LCIMSignatureAction.cs
+
+
+ LCIMClient.cs
+
+
+
+
+
+
+
+
+ ..\..\UnityLibs\Newtonsoft.Json.dll
+
+
+
+
+
+
diff --git a/Realtime/Realtime-Unity/link/link.xml b/Realtime/Realtime-Unity/link/link.xml
new file mode 100644
index 0000000..2c4d0b3
--- /dev/null
+++ b/Realtime/Realtime-Unity/link/link.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/Test/Realtime.Test/Client.cs b/Realtime/Realtime.Test/Client.cs
similarity index 100%
rename from Test/Realtime.Test/Client.cs
rename to Realtime/Realtime.Test/Client.cs
diff --git a/Test/Realtime.Test/Conversation.cs b/Realtime/Realtime.Test/Conversation.cs
similarity index 100%
rename from Test/Realtime.Test/Conversation.cs
rename to Realtime/Realtime.Test/Conversation.cs
diff --git a/Test/Realtime.Test/ConversationQuery.cs b/Realtime/Realtime.Test/ConversationQuery.cs
similarity index 100%
rename from Test/Realtime.Test/ConversationQuery.cs
rename to Realtime/Realtime.Test/ConversationQuery.cs
diff --git a/Test/Realtime.Test/LocalSignatureFactory.cs b/Realtime/Realtime.Test/LocalSignatureFactory.cs
similarity index 100%
rename from Test/Realtime.Test/LocalSignatureFactory.cs
rename to Realtime/Realtime.Test/LocalSignatureFactory.cs
diff --git a/Test/Realtime.Test/Message.cs b/Realtime/Realtime.Test/Message.cs
similarity index 98%
rename from Test/Realtime.Test/Message.cs
rename to Realtime/Realtime.Test/Message.cs
index 4efe3aa..d69ce66 100644
--- a/Test/Realtime.Test/Message.cs
+++ b/Realtime/Realtime.Test/Message.cs
@@ -4,7 +4,6 @@ using System.Collections.ObjectModel;
using System.Threading.Tasks;
using System.Collections.Generic;
using LeanCloud;
-using LeanCloud.Common;
using LeanCloud.Storage;
using LeanCloud.Realtime;
@@ -79,13 +78,13 @@ namespace Realtime.Test {
await conversation.Send(textMessage);
Assert.NotNull(textMessage.Id);
- LCFile image = new LCFile("hello", "../../../../assets/hello.png");
+ LCFile image = new LCFile("hello", "../../../../../assets/hello.png");
await image.Save();
LCIMImageMessage imageMessage = new LCIMImageMessage(image);
await conversation.Send(imageMessage);
Assert.NotNull(imageMessage.Id);
- LCFile file = new LCFile("apk", "../../../../assets/test.apk");
+ LCFile file = new LCFile("apk", "../../../../../assets/test.apk");
await file.Save();
LCIMFileMessage fileMessage = new LCIMFileMessage(file);
await conversation.Send(fileMessage);
diff --git a/Test/Realtime.Test/Protobuf.cs b/Realtime/Realtime.Test/Protobuf.cs
similarity index 100%
rename from Test/Realtime.Test/Protobuf.cs
rename to Realtime/Realtime.Test/Protobuf.cs
diff --git a/Test/Realtime.Test/Realtime.Test.csproj b/Realtime/Realtime.Test/Realtime.Test.csproj
similarity index 76%
rename from Test/Realtime.Test/Realtime.Test.csproj
rename to Realtime/Realtime.Test/Realtime.Test.csproj
index bb33613..729204e 100644
--- a/Test/Realtime.Test/Realtime.Test.csproj
+++ b/Realtime/Realtime.Test/Realtime.Test.csproj
@@ -14,7 +14,7 @@
-
-
+
+
diff --git a/Test/Realtime.Test/Utils.cs b/Realtime/Realtime.Test/Utils.cs
similarity index 100%
rename from Test/Realtime.Test/Utils.cs
rename to Realtime/Realtime.Test/Utils.cs
diff --git a/Realtime/Conversation/LCIMChatRoom.cs b/Realtime/Realtime/Conversation/LCIMChatRoom.cs
similarity index 100%
rename from Realtime/Conversation/LCIMChatRoom.cs
rename to Realtime/Realtime/Conversation/LCIMChatRoom.cs
diff --git a/Realtime/Conversation/LCIMConversation.cs b/Realtime/Realtime/Conversation/LCIMConversation.cs
similarity index 100%
rename from Realtime/Conversation/LCIMConversation.cs
rename to Realtime/Realtime/Conversation/LCIMConversation.cs
diff --git a/Realtime/Conversation/LCIMConversationMemberInfo.cs b/Realtime/Realtime/Conversation/LCIMConversationMemberInfo.cs
similarity index 100%
rename from Realtime/Conversation/LCIMConversationMemberInfo.cs
rename to Realtime/Realtime/Conversation/LCIMConversationMemberInfo.cs
diff --git a/Realtime/Conversation/LCIMConversationQuery.cs b/Realtime/Realtime/Conversation/LCIMConversationQuery.cs
similarity index 100%
rename from Realtime/Conversation/LCIMConversationQuery.cs
rename to Realtime/Realtime/Conversation/LCIMConversationQuery.cs
diff --git a/Realtime/Conversation/LCIMMessageQueryOptions.cs b/Realtime/Realtime/Conversation/LCIMMessageQueryOptions.cs
similarity index 100%
rename from Realtime/Conversation/LCIMMessageQueryOptions.cs
rename to Realtime/Realtime/Conversation/LCIMMessageQueryOptions.cs
diff --git a/Realtime/Conversation/LCIMServiceConversation.cs b/Realtime/Realtime/Conversation/LCIMServiceConversation.cs
similarity index 100%
rename from Realtime/Conversation/LCIMServiceConversation.cs
rename to Realtime/Realtime/Conversation/LCIMServiceConversation.cs
diff --git a/Realtime/Conversation/LCIMTemporaryConversation.cs b/Realtime/Realtime/Conversation/LCIMTemporaryConversation.cs
similarity index 100%
rename from Realtime/Conversation/LCIMTemporaryConversation.cs
rename to Realtime/Realtime/Conversation/LCIMTemporaryConversation.cs
diff --git a/Realtime/Internal/Connection/LCConnection.cs b/Realtime/Realtime/Internal/Connection/LCConnection.cs
similarity index 100%
rename from Realtime/Internal/Connection/LCConnection.cs
rename to Realtime/Realtime/Internal/Connection/LCConnection.cs
diff --git a/Realtime/Internal/Connection/LCHeartBeat.cs b/Realtime/Realtime/Internal/Connection/LCHeartBeat.cs
similarity index 100%
rename from Realtime/Internal/Connection/LCHeartBeat.cs
rename to Realtime/Realtime/Internal/Connection/LCHeartBeat.cs
diff --git a/Realtime/Internal/Controller/LCIMController.cs b/Realtime/Realtime/Internal/Controller/LCIMController.cs
similarity index 100%
rename from Realtime/Internal/Controller/LCIMController.cs
rename to Realtime/Realtime/Internal/Controller/LCIMController.cs
diff --git a/Realtime/Internal/Controller/LCIMConversationController.cs b/Realtime/Realtime/Internal/Controller/LCIMConversationController.cs
similarity index 100%
rename from Realtime/Internal/Controller/LCIMConversationController.cs
rename to Realtime/Realtime/Internal/Controller/LCIMConversationController.cs
diff --git a/Realtime/Internal/Controller/LCIMGoAwayController.cs b/Realtime/Realtime/Internal/Controller/LCIMGoAwayController.cs
similarity index 100%
rename from Realtime/Internal/Controller/LCIMGoAwayController.cs
rename to Realtime/Realtime/Internal/Controller/LCIMGoAwayController.cs
diff --git a/Realtime/Internal/Controller/LCIMMessageController.cs b/Realtime/Realtime/Internal/Controller/LCIMMessageController.cs
similarity index 100%
rename from Realtime/Internal/Controller/LCIMMessageController.cs
rename to Realtime/Realtime/Internal/Controller/LCIMMessageController.cs
diff --git a/Realtime/Internal/Controller/LCIMSessionController.cs b/Realtime/Realtime/Internal/Controller/LCIMSessionController.cs
similarity index 100%
rename from Realtime/Internal/Controller/LCIMSessionController.cs
rename to Realtime/Realtime/Internal/Controller/LCIMSessionController.cs
diff --git a/Realtime/Internal/Protocol/Messages2Proto.cs b/Realtime/Realtime/Internal/Protocol/Messages2Proto.cs
similarity index 100%
rename from Realtime/Internal/Protocol/Messages2Proto.cs
rename to Realtime/Realtime/Internal/Protocol/Messages2Proto.cs
diff --git a/Realtime/Internal/Router/LCRTMRouter.cs b/Realtime/Realtime/Internal/Router/LCRTMRouter.cs
similarity index 100%
rename from Realtime/Internal/Router/LCRTMRouter.cs
rename to Realtime/Realtime/Internal/Router/LCRTMRouter.cs
diff --git a/Realtime/Internal/Router/LCRTMServer.cs b/Realtime/Realtime/Internal/Router/LCRTMServer.cs
similarity index 100%
rename from Realtime/Internal/Router/LCRTMServer.cs
rename to Realtime/Realtime/Internal/Router/LCRTMServer.cs
diff --git a/Realtime/Internal/WebSocket/LCWebSocketClient.cs b/Realtime/Realtime/Internal/WebSocket/LCWebSocketClient.cs
similarity index 100%
rename from Realtime/Internal/WebSocket/LCWebSocketClient.cs
rename to Realtime/Realtime/Internal/WebSocket/LCWebSocketClient.cs
diff --git a/Realtime/LCIMClient.cs b/Realtime/Realtime/LCIMClient.cs
similarity index 100%
rename from Realtime/LCIMClient.cs
rename to Realtime/Realtime/LCIMClient.cs
diff --git a/Realtime/Message/LCIMAudioMessage.cs b/Realtime/Realtime/Message/LCIMAudioMessage.cs
similarity index 100%
rename from Realtime/Message/LCIMAudioMessage.cs
rename to Realtime/Realtime/Message/LCIMAudioMessage.cs
diff --git a/Realtime/Message/LCIMBinaryMessage.cs b/Realtime/Realtime/Message/LCIMBinaryMessage.cs
similarity index 100%
rename from Realtime/Message/LCIMBinaryMessage.cs
rename to Realtime/Realtime/Message/LCIMBinaryMessage.cs
diff --git a/Realtime/Message/LCIMFileMessage.cs b/Realtime/Realtime/Message/LCIMFileMessage.cs
similarity index 100%
rename from Realtime/Message/LCIMFileMessage.cs
rename to Realtime/Realtime/Message/LCIMFileMessage.cs
diff --git a/Realtime/Message/LCIMImageMessage.cs b/Realtime/Realtime/Message/LCIMImageMessage.cs
similarity index 100%
rename from Realtime/Message/LCIMImageMessage.cs
rename to Realtime/Realtime/Message/LCIMImageMessage.cs
diff --git a/Realtime/Message/LCIMLocationMessage.cs b/Realtime/Realtime/Message/LCIMLocationMessage.cs
similarity index 100%
rename from Realtime/Message/LCIMLocationMessage.cs
rename to Realtime/Realtime/Message/LCIMLocationMessage.cs
diff --git a/Realtime/Message/LCIMMessage.cs b/Realtime/Realtime/Message/LCIMMessage.cs
similarity index 100%
rename from Realtime/Message/LCIMMessage.cs
rename to Realtime/Realtime/Message/LCIMMessage.cs
diff --git a/Realtime/Message/LCIMMessageSendOptions.cs b/Realtime/Realtime/Message/LCIMMessageSendOptions.cs
similarity index 100%
rename from Realtime/Message/LCIMMessageSendOptions.cs
rename to Realtime/Realtime/Message/LCIMMessageSendOptions.cs
diff --git a/Realtime/Message/LCIMRecalledMessage.cs b/Realtime/Realtime/Message/LCIMRecalledMessage.cs
similarity index 100%
rename from Realtime/Message/LCIMRecalledMessage.cs
rename to Realtime/Realtime/Message/LCIMRecalledMessage.cs
diff --git a/Realtime/Message/LCIMTextMessage.cs b/Realtime/Realtime/Message/LCIMTextMessage.cs
similarity index 100%
rename from Realtime/Message/LCIMTextMessage.cs
rename to Realtime/Realtime/Message/LCIMTextMessage.cs
diff --git a/Realtime/Message/LCIMTypedMessage.cs b/Realtime/Realtime/Message/LCIMTypedMessage.cs
similarity index 100%
rename from Realtime/Message/LCIMTypedMessage.cs
rename to Realtime/Realtime/Message/LCIMTypedMessage.cs
diff --git a/Realtime/Message/LCIMVideoMessage.cs b/Realtime/Realtime/Message/LCIMVideoMessage.cs
similarity index 100%
rename from Realtime/Message/LCIMVideoMessage.cs
rename to Realtime/Realtime/Message/LCIMVideoMessage.cs
diff --git a/Realtime/Realtime.csproj b/Realtime/Realtime/Realtime.csproj
similarity index 85%
rename from Realtime/Realtime.csproj
rename to Realtime/Realtime/Realtime.csproj
index e9eaffd..569b4e9 100644
--- a/Realtime/Realtime.csproj
+++ b/Realtime/Realtime/Realtime.csproj
@@ -7,10 +7,6 @@
true
-
-
-
-
@@ -26,4 +22,8 @@
+
+
+
+
diff --git a/Realtime/Result/LCIMOperationFailure.cs b/Realtime/Realtime/Result/LCIMOperationFailure.cs
similarity index 100%
rename from Realtime/Result/LCIMOperationFailure.cs
rename to Realtime/Realtime/Result/LCIMOperationFailure.cs
diff --git a/Realtime/Result/LCIMPageResult.cs b/Realtime/Realtime/Result/LCIMPageResult.cs
similarity index 100%
rename from Realtime/Result/LCIMPageResult.cs
rename to Realtime/Realtime/Result/LCIMPageResult.cs
diff --git a/Realtime/Result/LCIMPartiallySuccessResult.cs b/Realtime/Realtime/Result/LCIMPartiallySuccessResult.cs
similarity index 100%
rename from Realtime/Result/LCIMPartiallySuccessResult.cs
rename to Realtime/Realtime/Result/LCIMPartiallySuccessResult.cs
diff --git a/Realtime/Signature/ILCIMSignatureFactory.cs b/Realtime/Realtime/Signature/ILCIMSignatureFactory.cs
similarity index 100%
rename from Realtime/Signature/ILCIMSignatureFactory.cs
rename to Realtime/Realtime/Signature/ILCIMSignatureFactory.cs
diff --git a/Realtime/Signature/LCIMSignature.cs b/Realtime/Realtime/Signature/LCIMSignature.cs
similarity index 100%
rename from Realtime/Signature/LCIMSignature.cs
rename to Realtime/Realtime/Signature/LCIMSignature.cs
diff --git a/Realtime/Signature/LCIMSignatureAction.cs b/Realtime/Realtime/Signature/LCIMSignatureAction.cs
similarity index 100%
rename from Realtime/Signature/LCIMSignatureAction.cs
rename to Realtime/Realtime/Signature/LCIMSignatureAction.cs
diff --git a/Realtime/protobuf/compile-client-proto.sh b/Realtime/Realtime/protobuf/compile-client-proto.sh
similarity index 100%
rename from Realtime/protobuf/compile-client-proto.sh
rename to Realtime/Realtime/protobuf/compile-client-proto.sh
diff --git a/Realtime/protobuf/messages2.proto.orig b/Realtime/Realtime/protobuf/messages2.proto.orig
similarity index 100%
rename from Realtime/protobuf/messages2.proto.orig
rename to Realtime/Realtime/protobuf/messages2.proto.orig
diff --git a/Test/RealtimeApp/Program.cs b/Sample/RealtimeApp/Program.cs
similarity index 100%
rename from Test/RealtimeApp/Program.cs
rename to Sample/RealtimeApp/Program.cs
diff --git a/Test/RealtimeApp/RealtimeApp.csproj b/Sample/RealtimeApp/RealtimeApp.csproj
similarity index 50%
rename from Test/RealtimeApp/RealtimeApp.csproj
rename to Sample/RealtimeApp/RealtimeApp.csproj
index 075081d..d96ba13 100644
--- a/Test/RealtimeApp/RealtimeApp.csproj
+++ b/Sample/RealtimeApp/RealtimeApp.csproj
@@ -6,8 +6,6 @@
-
-
-
+
diff --git a/Test/RealtimeApp/SingleThreadSynchronizationContext.cs b/Sample/RealtimeApp/SingleThreadSynchronizationContext.cs
similarity index 100%
rename from Test/RealtimeApp/SingleThreadSynchronizationContext.cs
rename to Sample/RealtimeApp/SingleThreadSynchronizationContext.cs
diff --git a/Storage/Storage-Unity/Storage-Unity.csproj b/Storage/Storage-Unity/Storage-Unity.csproj
new file mode 100644
index 0000000..5eca288
--- /dev/null
+++ b/Storage/Storage-Unity/Storage-Unity.csproj
@@ -0,0 +1,129 @@
+
+
+
+ netstandard2.0
+ 0.1.0
+
+
+
+
+ LCACL.cs
+
+
+ LCApplication.cs
+
+
+ LCCloud.cs
+
+
+ LCException.cs
+
+
+ LCFile.cs
+
+
+ LCGeoPoint.cs
+
+
+ LCObject.cs
+
+
+ LCQuery.cs
+
+
+ LCRelation.cs
+
+
+ LCRole.cs
+
+
+ LCUser.cs
+
+
+ LCUserAuthDataLoginOption.cs
+
+
+ Internal\Operation\LCNumberOperation.cs
+
+
+ Internal\Operation\LCAddRelationOperation.cs
+
+
+ Internal\Operation\LCDeleteOperation.cs
+
+
+ Internal\Operation\LCSetOperation.cs
+
+
+ Internal\Operation\LCAddUniqueOperation.cs
+
+
+ Internal\Operation\LCRemoveOperation.cs
+
+
+ Internal\Operation\LCRemoveRelationOperation.cs
+
+
+ Internal\Operation\LCAddOperation.cs
+
+
+ Internal\Operation\ILCOperation.cs
+
+
+ Internal\File\LCProgressableStreamContent.cs
+
+
+ Internal\File\LCQiniuUploader.cs
+
+
+ Internal\File\LCMimeTypeMap.cs
+
+
+ Internal\File\LCAWSUploader.cs
+
+
+ Internal\Codec\LCEncoder.cs
+
+
+ Internal\Codec\LCDecoder.cs
+
+
+ Internal\Object\LCSubClassInfo.cs
+
+
+ Internal\Object\LCBatch.cs
+
+
+ Internal\Object\LCObjectData.cs
+
+
+ Internal\Http\LCHttpClient.cs
+
+
+ Internal\Http\LCJsonConverter.cs
+
+
+ Internal\Query\LCEqualCondition.cs
+
+
+ Internal\Query\LCOperationCondition.cs
+
+
+ Internal\Query\LCRelatedCondition.cs
+
+
+ Internal\Query\ILCQueryCondition.cs
+
+
+ Internal\Query\LCCompositionalCondition.cs
+
+
+
+
+ ..\..\UnityLibs\Newtonsoft.Json.dll
+
+
+
+
+
+
diff --git a/Storage/Storage-Unity/link/link.xml b/Storage/Storage-Unity/link/link.xml
new file mode 100644
index 0000000..5b423ac
--- /dev/null
+++ b/Storage/Storage-Unity/link/link.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/Test/Storage.Test/ACLTest.cs b/Storage/Storage.Test/ACLTest.cs
similarity index 100%
rename from Test/Storage.Test/ACLTest.cs
rename to Storage/Storage.Test/ACLTest.cs
diff --git a/Test/Storage.Test/CloudTest.cs b/Storage/Storage.Test/CloudTest.cs
similarity index 100%
rename from Test/Storage.Test/CloudTest.cs
rename to Storage/Storage.Test/CloudTest.cs
diff --git a/Test/Storage.Test/ExceptionTest.cs b/Storage/Storage.Test/ExceptionTest.cs
similarity index 100%
rename from Test/Storage.Test/ExceptionTest.cs
rename to Storage/Storage.Test/ExceptionTest.cs
diff --git a/Test/Storage.Test/FileTest.cs b/Storage/Storage.Test/FileTest.cs
similarity index 94%
rename from Test/Storage.Test/FileTest.cs
rename to Storage/Storage.Test/FileTest.cs
index 4912857..88c4b12 100644
--- a/Test/Storage.Test/FileTest.cs
+++ b/Storage/Storage.Test/FileTest.cs
@@ -7,8 +7,8 @@ using LeanCloud.Storage;
namespace Storage.Test {
public class FileTest {
- static readonly string AvatarFilePath = "../../../../assets/hello.png";
- static readonly string APKFilePath = "../../../../assets/test.apk";
+ static readonly string AvatarFilePath = "../../../../../assets/hello.png";
+ static readonly string APKFilePath = "../../../../../assets/test.apk";
[SetUp]
public void SetUp() {
diff --git a/Test/Storage.Test/GeoTest.cs b/Storage/Storage.Test/GeoTest.cs
similarity index 100%
rename from Test/Storage.Test/GeoTest.cs
rename to Storage/Storage.Test/GeoTest.cs
diff --git a/Test/Storage.Test/ObjectTest.cs b/Storage/Storage.Test/ObjectTest.cs
similarity index 100%
rename from Test/Storage.Test/ObjectTest.cs
rename to Storage/Storage.Test/ObjectTest.cs
diff --git a/Test/Storage.Test/OperationTest.cs b/Storage/Storage.Test/OperationTest.cs
similarity index 100%
rename from Test/Storage.Test/OperationTest.cs
rename to Storage/Storage.Test/OperationTest.cs
diff --git a/Test/Storage.Test/QueryTest.cs b/Storage/Storage.Test/QueryTest.cs
similarity index 100%
rename from Test/Storage.Test/QueryTest.cs
rename to Storage/Storage.Test/QueryTest.cs
diff --git a/Test/Storage.Test/RelationTest.cs b/Storage/Storage.Test/RelationTest.cs
similarity index 100%
rename from Test/Storage.Test/RelationTest.cs
rename to Storage/Storage.Test/RelationTest.cs
diff --git a/Test/Storage.Test/RoleTest.cs b/Storage/Storage.Test/RoleTest.cs
similarity index 100%
rename from Test/Storage.Test/RoleTest.cs
rename to Storage/Storage.Test/RoleTest.cs
diff --git a/Test/Storage.Test/Storage.Test.csproj b/Storage/Storage.Test/Storage.Test.csproj
similarity index 88%
rename from Test/Storage.Test/Storage.Test.csproj
rename to Storage/Storage.Test/Storage.Test.csproj
index 86429e9..fb5a7be 100644
--- a/Test/Storage.Test/Storage.Test.csproj
+++ b/Storage/Storage.Test/Storage.Test.csproj
@@ -15,6 +15,6 @@
-
+
diff --git a/Test/Storage.Test/SubClassTest.cs b/Storage/Storage.Test/SubClassTest.cs
similarity index 100%
rename from Test/Storage.Test/SubClassTest.cs
rename to Storage/Storage.Test/SubClassTest.cs
diff --git a/Test/Storage.Test/UserTest.cs b/Storage/Storage.Test/UserTest.cs
similarity index 100%
rename from Test/Storage.Test/UserTest.cs
rename to Storage/Storage.Test/UserTest.cs
diff --git a/Test/Storage.Test/Utils.cs b/Storage/Storage.Test/Utils.cs
similarity index 100%
rename from Test/Storage.Test/Utils.cs
rename to Storage/Storage.Test/Utils.cs
diff --git a/Storage/Internal/Codec/LCDecoder.cs b/Storage/Storage/Internal/Codec/LCDecoder.cs
similarity index 100%
rename from Storage/Internal/Codec/LCDecoder.cs
rename to Storage/Storage/Internal/Codec/LCDecoder.cs
diff --git a/Storage/Internal/Codec/LCEncoder.cs b/Storage/Storage/Internal/Codec/LCEncoder.cs
similarity index 100%
rename from Storage/Internal/Codec/LCEncoder.cs
rename to Storage/Storage/Internal/Codec/LCEncoder.cs
diff --git a/Storage/Internal/File/LCAWSUploader.cs b/Storage/Storage/Internal/File/LCAWSUploader.cs
similarity index 100%
rename from Storage/Internal/File/LCAWSUploader.cs
rename to Storage/Storage/Internal/File/LCAWSUploader.cs
diff --git a/Storage/Internal/File/LCMimeTypeMap.cs b/Storage/Storage/Internal/File/LCMimeTypeMap.cs
similarity index 100%
rename from Storage/Internal/File/LCMimeTypeMap.cs
rename to Storage/Storage/Internal/File/LCMimeTypeMap.cs
diff --git a/Storage/Internal/File/LCProgressableStreamContent.cs b/Storage/Storage/Internal/File/LCProgressableStreamContent.cs
similarity index 100%
rename from Storage/Internal/File/LCProgressableStreamContent.cs
rename to Storage/Storage/Internal/File/LCProgressableStreamContent.cs
diff --git a/Storage/Internal/File/LCQiniuUploader.cs b/Storage/Storage/Internal/File/LCQiniuUploader.cs
similarity index 100%
rename from Storage/Internal/File/LCQiniuUploader.cs
rename to Storage/Storage/Internal/File/LCQiniuUploader.cs
diff --git a/Storage/Internal/Http/LCHttpClient.cs b/Storage/Storage/Internal/Http/LCHttpClient.cs
similarity index 100%
rename from Storage/Internal/Http/LCHttpClient.cs
rename to Storage/Storage/Internal/Http/LCHttpClient.cs
diff --git a/Storage/Internal/Http/LCJsonConverter.cs b/Storage/Storage/Internal/Http/LCJsonConverter.cs
similarity index 100%
rename from Storage/Internal/Http/LCJsonConverter.cs
rename to Storage/Storage/Internal/Http/LCJsonConverter.cs
diff --git a/Storage/Internal/Object/LCBatch.cs b/Storage/Storage/Internal/Object/LCBatch.cs
similarity index 100%
rename from Storage/Internal/Object/LCBatch.cs
rename to Storage/Storage/Internal/Object/LCBatch.cs
diff --git a/Storage/Internal/Object/LCObjectData.cs b/Storage/Storage/Internal/Object/LCObjectData.cs
similarity index 100%
rename from Storage/Internal/Object/LCObjectData.cs
rename to Storage/Storage/Internal/Object/LCObjectData.cs
diff --git a/Storage/Internal/Object/LCSubClassInfo.cs b/Storage/Storage/Internal/Object/LCSubClassInfo.cs
similarity index 100%
rename from Storage/Internal/Object/LCSubClassInfo.cs
rename to Storage/Storage/Internal/Object/LCSubClassInfo.cs
diff --git a/Storage/Internal/Operation/ILCOperation.cs b/Storage/Storage/Internal/Operation/ILCOperation.cs
similarity index 100%
rename from Storage/Internal/Operation/ILCOperation.cs
rename to Storage/Storage/Internal/Operation/ILCOperation.cs
diff --git a/Storage/Internal/Operation/LCAddOperation.cs b/Storage/Storage/Internal/Operation/LCAddOperation.cs
similarity index 100%
rename from Storage/Internal/Operation/LCAddOperation.cs
rename to Storage/Storage/Internal/Operation/LCAddOperation.cs
diff --git a/Storage/Internal/Operation/LCAddRelationOperation.cs b/Storage/Storage/Internal/Operation/LCAddRelationOperation.cs
similarity index 100%
rename from Storage/Internal/Operation/LCAddRelationOperation.cs
rename to Storage/Storage/Internal/Operation/LCAddRelationOperation.cs
diff --git a/Storage/Internal/Operation/LCAddUniqueOperation.cs b/Storage/Storage/Internal/Operation/LCAddUniqueOperation.cs
similarity index 100%
rename from Storage/Internal/Operation/LCAddUniqueOperation.cs
rename to Storage/Storage/Internal/Operation/LCAddUniqueOperation.cs
diff --git a/Storage/Internal/Operation/LCDeleteOperation.cs b/Storage/Storage/Internal/Operation/LCDeleteOperation.cs
similarity index 100%
rename from Storage/Internal/Operation/LCDeleteOperation.cs
rename to Storage/Storage/Internal/Operation/LCDeleteOperation.cs
diff --git a/Storage/Internal/Operation/LCNumberOperation.cs b/Storage/Storage/Internal/Operation/LCNumberOperation.cs
similarity index 100%
rename from Storage/Internal/Operation/LCNumberOperation.cs
rename to Storage/Storage/Internal/Operation/LCNumberOperation.cs
diff --git a/Storage/Internal/Operation/LCRemoveOperation.cs b/Storage/Storage/Internal/Operation/LCRemoveOperation.cs
similarity index 100%
rename from Storage/Internal/Operation/LCRemoveOperation.cs
rename to Storage/Storage/Internal/Operation/LCRemoveOperation.cs
diff --git a/Storage/Internal/Operation/LCRemoveRelationOperation.cs b/Storage/Storage/Internal/Operation/LCRemoveRelationOperation.cs
similarity index 100%
rename from Storage/Internal/Operation/LCRemoveRelationOperation.cs
rename to Storage/Storage/Internal/Operation/LCRemoveRelationOperation.cs
diff --git a/Storage/Internal/Operation/LCSetOperation.cs b/Storage/Storage/Internal/Operation/LCSetOperation.cs
similarity index 100%
rename from Storage/Internal/Operation/LCSetOperation.cs
rename to Storage/Storage/Internal/Operation/LCSetOperation.cs
diff --git a/Storage/Internal/Query/ILCQueryCondition.cs b/Storage/Storage/Internal/Query/ILCQueryCondition.cs
similarity index 100%
rename from Storage/Internal/Query/ILCQueryCondition.cs
rename to Storage/Storage/Internal/Query/ILCQueryCondition.cs
diff --git a/Storage/Internal/Query/LCCompositionalCondition.cs b/Storage/Storage/Internal/Query/LCCompositionalCondition.cs
similarity index 100%
rename from Storage/Internal/Query/LCCompositionalCondition.cs
rename to Storage/Storage/Internal/Query/LCCompositionalCondition.cs
diff --git a/Storage/Internal/Query/LCEqualCondition.cs b/Storage/Storage/Internal/Query/LCEqualCondition.cs
similarity index 100%
rename from Storage/Internal/Query/LCEqualCondition.cs
rename to Storage/Storage/Internal/Query/LCEqualCondition.cs
diff --git a/Storage/Internal/Query/LCOperationCondition.cs b/Storage/Storage/Internal/Query/LCOperationCondition.cs
similarity index 100%
rename from Storage/Internal/Query/LCOperationCondition.cs
rename to Storage/Storage/Internal/Query/LCOperationCondition.cs
diff --git a/Storage/Internal/Query/LCRelatedCondition.cs b/Storage/Storage/Internal/Query/LCRelatedCondition.cs
similarity index 100%
rename from Storage/Internal/Query/LCRelatedCondition.cs
rename to Storage/Storage/Internal/Query/LCRelatedCondition.cs
diff --git a/Storage/LCACL.cs b/Storage/Storage/LCACL.cs
similarity index 100%
rename from Storage/LCACL.cs
rename to Storage/Storage/LCACL.cs
diff --git a/Storage/LCApplication.cs b/Storage/Storage/LCApplication.cs
similarity index 100%
rename from Storage/LCApplication.cs
rename to Storage/Storage/LCApplication.cs
diff --git a/Storage/LCCloud.cs b/Storage/Storage/LCCloud.cs
similarity index 100%
rename from Storage/LCCloud.cs
rename to Storage/Storage/LCCloud.cs
diff --git a/Storage/LCException.cs b/Storage/Storage/LCException.cs
similarity index 100%
rename from Storage/LCException.cs
rename to Storage/Storage/LCException.cs
diff --git a/Storage/LCFile.cs b/Storage/Storage/LCFile.cs
similarity index 100%
rename from Storage/LCFile.cs
rename to Storage/Storage/LCFile.cs
diff --git a/Storage/LCGeoPoint.cs b/Storage/Storage/LCGeoPoint.cs
similarity index 100%
rename from Storage/LCGeoPoint.cs
rename to Storage/Storage/LCGeoPoint.cs
diff --git a/Storage/LCObject.cs b/Storage/Storage/LCObject.cs
similarity index 100%
rename from Storage/LCObject.cs
rename to Storage/Storage/LCObject.cs
diff --git a/Storage/LCQuery.cs b/Storage/Storage/LCQuery.cs
similarity index 100%
rename from Storage/LCQuery.cs
rename to Storage/Storage/LCQuery.cs
diff --git a/Storage/LCRelation.cs b/Storage/Storage/LCRelation.cs
similarity index 100%
rename from Storage/LCRelation.cs
rename to Storage/Storage/LCRelation.cs
diff --git a/Storage/LCRole.cs b/Storage/Storage/LCRole.cs
similarity index 100%
rename from Storage/LCRole.cs
rename to Storage/Storage/LCRole.cs
diff --git a/Storage/LCUser.cs b/Storage/Storage/LCUser.cs
similarity index 100%
rename from Storage/LCUser.cs
rename to Storage/Storage/LCUser.cs
diff --git a/Storage/LCUserAuthDataLoginOption.cs b/Storage/Storage/LCUserAuthDataLoginOption.cs
similarity index 100%
rename from Storage/LCUserAuthDataLoginOption.cs
rename to Storage/Storage/LCUserAuthDataLoginOption.cs
diff --git a/Storage/Storage.csproj b/Storage/Storage/Storage.csproj
similarity index 92%
rename from Storage/Storage.csproj
rename to Storage/Storage/Storage.csproj
index 7793a5f..9d8932c 100644
--- a/Storage/Storage.csproj
+++ b/Storage/Storage/Storage.csproj
@@ -23,6 +23,6 @@
-
+
diff --git a/UnityLibs/Newtonsoft.Json.dll b/UnityLibs/Newtonsoft.Json.dll
new file mode 100644
index 0000000..6630063
Binary files /dev/null and b/UnityLibs/Newtonsoft.Json.dll differ
diff --git a/Test/assets/hello.png b/assets/hello.png
similarity index 100%
rename from Test/assets/hello.png
rename to assets/hello.png
diff --git a/Test/assets/test.apk b/assets/test.apk
similarity index 100%
rename from Test/assets/test.apk
rename to assets/test.apk
diff --git a/csharp-sdk.sln b/csharp-sdk.sln
index 166d2e2..7139bb2 100644
--- a/csharp-sdk.sln
+++ b/csharp-sdk.sln
@@ -1,19 +1,31 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Test", "Test", "{C827DA2F-6AB4-48D8-AB5B-6DAB925F8933}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common", "Common\Common\Common.csproj", "{758DE75D-37D7-4392-B564-9484348B505C}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common", "Common\Common.csproj", "{758DE75D-37D7-4392-B564-9484348B505C}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Storage", "Storage\Storage\Storage.csproj", "{4DCA6CCF-DBD2-4184-9A7E-8775A024D194}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Storage", "Storage\Storage.csproj", "{4DCA6CCF-DBD2-4184-9A7E-8775A024D194}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Storage.Test", "Storage\Storage.Test\Storage.Test.csproj", "{531F8181-FFE0-476E-9D0A-93F13CAD1183}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Storage.Test", "Test\Storage.Test\Storage.Test.csproj", "{531F8181-FFE0-476E-9D0A-93F13CAD1183}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Realtime.Test", "Realtime\Realtime.Test\Realtime.Test.csproj", "{746B0DE6-C504-4568-BA6D-4A08A91A5E35}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Realtime", "Realtime\Realtime.csproj", "{7084C9BD-6D26-4803-9E7F-A6D2E55D963A}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Realtime", "Realtime\Realtime\Realtime.csproj", "{7021826F-657F-40E2-AFBB-9F379FED7BEF}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Realtime.Test", "Test\Realtime.Test\Realtime.Test.csproj", "{746B0DE6-C504-4568-BA6D-4A08A91A5E35}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Storage", "Storage", "{076871D0-BE1F-4AF0-B83E-697C71C0C3B3}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RealtimeApp", "Test\RealtimeApp\RealtimeApp.csproj", "{4CB5E8C3-B1FC-45C3-B882-A9A43DFC6B1C}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Storage-Unity", "Storage\Storage-Unity\Storage-Unity.csproj", "{7819C2DC-2751-46BC-B72F-D68647B3069E}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Common", "Common", "{375B854F-C239-4503-868A-7F04C40582E5}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common-Unity", "Common\Common-Unity\Common-Unity.csproj", "{B43498B3-1697-47E2-AFBC-42FCA2D46F40}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Realtime", "Realtime", "{319A9989-3B69-4AD0-9E43-F6D31C1D2A4A}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Realtime-Unity", "Realtime\Realtime-Unity\Realtime-Unity.csproj", "{26CDAE2A-6D79-4981-8D80-3EA34FDFB134}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Sample", "Sample", "{2D980281-F060-4363-AB7A-D4B6C30ADDBB}"
+EndProject
+Project("{9344BDBB-3E7F-41FC-A0DD-8665D75EE146}") = "RealtimeApp", "Sample\RealtimeApp\RealtimeApp.csproj", "{B01D2258-2E2B-4970-A9FE-C73BDAF0A990}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -33,23 +45,41 @@ Global
{531F8181-FFE0-476E-9D0A-93F13CAD1183}.Debug|Any CPU.Build.0 = Debug|Any CPU
{531F8181-FFE0-476E-9D0A-93F13CAD1183}.Release|Any CPU.ActiveCfg = Release|Any CPU
{531F8181-FFE0-476E-9D0A-93F13CAD1183}.Release|Any CPU.Build.0 = Release|Any CPU
- {7084C9BD-6D26-4803-9E7F-A6D2E55D963A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {7084C9BD-6D26-4803-9E7F-A6D2E55D963A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {7084C9BD-6D26-4803-9E7F-A6D2E55D963A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {7084C9BD-6D26-4803-9E7F-A6D2E55D963A}.Release|Any CPU.Build.0 = Release|Any CPU
{746B0DE6-C504-4568-BA6D-4A08A91A5E35}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{746B0DE6-C504-4568-BA6D-4A08A91A5E35}.Debug|Any CPU.Build.0 = Debug|Any CPU
{746B0DE6-C504-4568-BA6D-4A08A91A5E35}.Release|Any CPU.ActiveCfg = Release|Any CPU
{746B0DE6-C504-4568-BA6D-4A08A91A5E35}.Release|Any CPU.Build.0 = Release|Any CPU
- {4CB5E8C3-B1FC-45C3-B882-A9A43DFC6B1C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {4CB5E8C3-B1FC-45C3-B882-A9A43DFC6B1C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4CB5E8C3-B1FC-45C3-B882-A9A43DFC6B1C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4CB5E8C3-B1FC-45C3-B882-A9A43DFC6B1C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7021826F-657F-40E2-AFBB-9F379FED7BEF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7021826F-657F-40E2-AFBB-9F379FED7BEF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7021826F-657F-40E2-AFBB-9F379FED7BEF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7021826F-657F-40E2-AFBB-9F379FED7BEF}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7819C2DC-2751-46BC-B72F-D68647B3069E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7819C2DC-2751-46BC-B72F-D68647B3069E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7819C2DC-2751-46BC-B72F-D68647B3069E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7819C2DC-2751-46BC-B72F-D68647B3069E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B43498B3-1697-47E2-AFBC-42FCA2D46F40}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B43498B3-1697-47E2-AFBC-42FCA2D46F40}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B43498B3-1697-47E2-AFBC-42FCA2D46F40}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B43498B3-1697-47E2-AFBC-42FCA2D46F40}.Release|Any CPU.Build.0 = Release|Any CPU
+ {26CDAE2A-6D79-4981-8D80-3EA34FDFB134}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {26CDAE2A-6D79-4981-8D80-3EA34FDFB134}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {26CDAE2A-6D79-4981-8D80-3EA34FDFB134}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {26CDAE2A-6D79-4981-8D80-3EA34FDFB134}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B01D2258-2E2B-4970-A9FE-C73BDAF0A990}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B01D2258-2E2B-4970-A9FE-C73BDAF0A990}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B01D2258-2E2B-4970-A9FE-C73BDAF0A990}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B01D2258-2E2B-4970-A9FE-C73BDAF0A990}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
- {531F8181-FFE0-476E-9D0A-93F13CAD1183} = {C827DA2F-6AB4-48D8-AB5B-6DAB925F8933}
- {746B0DE6-C504-4568-BA6D-4A08A91A5E35} = {C827DA2F-6AB4-48D8-AB5B-6DAB925F8933}
- {4CB5E8C3-B1FC-45C3-B882-A9A43DFC6B1C} = {C827DA2F-6AB4-48D8-AB5B-6DAB925F8933}
+ {531F8181-FFE0-476E-9D0A-93F13CAD1183} = {076871D0-BE1F-4AF0-B83E-697C71C0C3B3}
+ {746B0DE6-C504-4568-BA6D-4A08A91A5E35} = {319A9989-3B69-4AD0-9E43-F6D31C1D2A4A}
+ {4DCA6CCF-DBD2-4184-9A7E-8775A024D194} = {076871D0-BE1F-4AF0-B83E-697C71C0C3B3}
+ {7819C2DC-2751-46BC-B72F-D68647B3069E} = {076871D0-BE1F-4AF0-B83E-697C71C0C3B3}
+ {758DE75D-37D7-4392-B564-9484348B505C} = {375B854F-C239-4503-868A-7F04C40582E5}
+ {B43498B3-1697-47E2-AFBC-42FCA2D46F40} = {375B854F-C239-4503-868A-7F04C40582E5}
+ {7021826F-657F-40E2-AFBB-9F379FED7BEF} = {319A9989-3B69-4AD0-9E43-F6D31C1D2A4A}
+ {26CDAE2A-6D79-4981-8D80-3EA34FDFB134} = {319A9989-3B69-4AD0-9E43-F6D31C1D2A4A}
+ {B01D2258-2E2B-4970-A9FE-C73BDAF0A990} = {2D980281-F060-4363-AB7A-D4B6C30ADDBB}
EndGlobalSection
GlobalSection(MonoDevelopProperties) = preSolution
version = 0.1.0
diff --git a/script/package.sh b/script/package.sh
index a1ec7fc..40d3c8a 100644
--- a/script/package.sh
+++ b/script/package.sh
@@ -1,14 +1,19 @@
#!/bin/sh
-mkdir DLLs
-rsync -avz ./Storage/bin/Release/netstandard2.0/ ./DLLs/
-#rsync -avz ./RTM/RTM.PCL/bin/Release/ DLLs
-#rsync -avz ./LiveQuery/LiveQuery.PCL/bin/Release/ DLLs
-zip -r LeanCloud-SDK-Standard.zip DLLs
-rm -r DLLs
-mkdir Plugins
-rsync -av --exclude='UnityEngine.dll' ./Storage/bin/Release/netstandard2.0/ ./Plugins/
-#rsync -av --exclude='UnityEngine.dll' ./RTM/RTM.Unity/bin/Release/ Plugins
-#rsync -av --exclude='UnityEngine.dll' ./LiveQuery/LiveQuery.Unity/bin/Release/ Plugins
-zip -r LeanCloud-SDK-Unity.zip Plugins
-rm -r Plugins
\ No newline at end of file
+pack() {
+ local path=$1;
+ local dir=$2;
+ local output=$3;
+ mkdir $dir
+ rsync -avz $path $dir
+ zip -r $output $dir
+ rm -r $dir
+}
+
+# Storage
+pack ./Storage/Storage/bin/Release/netstandard2.0/ ./DLLs LeanCloud-SDK-Storage-Standard.zip
+pack ./Storage/Storage-Unity/bin/Release/netstandard2.0/ ./Plugins LeanCloud-SDK-Storage-Unity.zip
+
+# Realtime
+pack ./Realtime/Realtime/bin/Release/netstandard2.0/ ./DLLs LeanCloud-SDK-Realtime-Standard.zip
+pack ./Realtime/Realtime-Unity/bin/Release/netstandard2.0/ ./Plugins LeanCloud-SDK-Realtime-Unity.zip
\ No newline at end of file