Browse Source

ios 分享sdk

hexiaojie 1 year ago
parent
commit
2db8314001
100 changed files with 2007 additions and 1308 deletions
  1. 71 71
      GameClient/Assets/Game/HotUpdate/Platform/ReYunSDKManager.cs
  2. 3 3
      GameClient/Assets/Game/Launcher/Platform/QDDouYouManagerInitIos.cs
  3. 0 564
      GameClient/Assets/Game/Launcher/ReYunSDK/MiniJSON.cs
  4. 0 667
      GameClient/Assets/Game/Launcher/ReYunSDK/Tracking.cs
  5. BIN
      GameClient/Assets/Plugins/Android/ShareSDKU3D.jar
  6. 1 1
      GameClient/Assets/Plugins/iOS/MOBTool.meta
  7. 8 0
      GameClient/Assets/Plugins/iOS/MOBTool/iOS.meta
  8. 8 0
      GameClient/Assets/Plugins/iOS/MOBTool/iOS/MOBAutoPackage.meta
  9. 8 0
      GameClient/Assets/Plugins/iOS/MOBTool/iOS/MOBAutoPackage/Editor.meta
  10. 1 0
      GameClient/Assets/Plugins/iOS/MOBTool/iOS/MOBAutoPackage/Editor/MOB.keypds
  11. 7 0
      GameClient/Assets/Plugins/iOS/MOBTool/iOS/MOBAutoPackage/Editor/MOB.keypds.meta
  12. 18 0
      GameClient/Assets/Plugins/iOS/MOBTool/iOS/MOBAutoPackage/Editor/MOBPathModel.cs
  13. 1 1
      GameClient/Assets/Plugins/iOS/MOBTool/iOS/MOBAutoPackage/Editor/MOBPathModel.cs.meta
  14. 756 0
      GameClient/Assets/Plugins/iOS/MOBTool/iOS/MOBAutoPackage/Editor/MOBPostProcessBuild.cs
  15. 1 1
      GameClient/Assets/Plugins/iOS/MOBTool/iOS/MOBAutoPackage/Editor/MOBPostProcessBuild.cs.meta
  16. 494 0
      GameClient/Assets/Plugins/iOS/MOBTool/iOS/MOBAutoPackage/Editor/MOBXCodeEditorModel.cs
  17. 11 0
      GameClient/Assets/Plugins/iOS/MOBTool/iOS/MOBAutoPackage/Editor/MOBXCodeEditorModel.cs.meta
  18. 8 0
      GameClient/Assets/Plugins/iOS/ShareSDK.meta
  19. 8 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor.meta
  20. 8 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds.meta
  21. 10 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/AliSocial.pltpds
  22. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/AliSocial.pltpds.meta
  23. 63 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/All.pltpds
  24. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/All.pltpds.meta
  25. 4 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Apple.pltpds
  26. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Apple.pltpds.meta
  27. 3 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/CMCC.pltpds
  28. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/CMCC.pltpds.meta
  29. 3 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Copy.pltpds
  30. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Copy.pltpds.meta
  31. 9 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/DingTalk.pltpds
  32. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/DingTalk.pltpds.meta
  33. 6 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/DingTalkShare.pltpds
  34. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/DingTalkShare.pltpds.meta
  35. 2 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/DouBan.pltpds
  36. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/DouBan.pltpds.meta
  37. 9 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Douyin.pltpds
  38. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Douyin.pltpds.meta
  39. 3 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Dropbox.pltpds
  40. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Dropbox.pltpds.meta
  41. 2 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/ESurfing.pltpds
  42. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/ESurfing.pltpds.meta
  43. 12 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/EasyChat.pltpds
  44. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/EasyChat.pltpds.meta
  45. 3 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Evernote.pltpds
  46. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Evernote.pltpds.meta
  47. 11 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Facebook.pltpds
  48. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Facebook.pltpds.meta
  49. 12 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/FacebookAccount.pltpds
  50. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/FacebookAccount.pltpds.meta
  51. 11 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/FacebookMessenger.pltpds
  52. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/FacebookMessenger.pltpds.meta
  53. 3 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Flickr.pltpds
  54. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Flickr.pltpds.meta
  55. 4 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/GooglePlus.pltpds
  56. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/GooglePlus.pltpds.meta
  57. 5 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Instagram.pltpds
  58. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Instagram.pltpds.meta
  59. 3 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Instapaper.pltpds
  60. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Instapaper.pltpds.meta
  61. 12 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/KaKao.pltpds
  62. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/KaKao.pltpds.meta
  63. 3 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Kaixin.pltpds
  64. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Kaixin.pltpds.meta
  65. 9 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/KuaiShou.pltpds
  66. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/KuaiShou.pltpds.meta
  67. 12 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Line.pltpds
  68. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Line.pltpds.meta
  69. 3 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/LinkedIn.pltpds
  70. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/LinkedIn.pltpds.meta
  71. 3 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Mail.pltpds
  72. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Mail.pltpds.meta
  73. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Meipai.pltpds
  74. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Meipai.pltpds.meta
  75. 3 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Mingdao.pltpds
  76. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Mingdao.pltpds.meta
  77. 9 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Oasis.pltpds
  78. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Oasis.pltpds.meta
  79. 8 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Pinterest.pltpds
  80. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Pinterest.pltpds.meta
  81. 8 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Pocket.pltpds
  82. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Pocket.pltpds.meta
  83. 3 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Print.pltpds
  84. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Print.pltpds.meta
  85. 15 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/QQ.pltpds
  86. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/QQ.pltpds.meta
  87. 3 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Reddit.pltpds
  88. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Reddit.pltpds.meta
  89. 5 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Renren.pltpds
  90. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Renren.pltpds.meta
  91. 3 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/SMS.pltpds
  92. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/SMS.pltpds.meta
  93. 10 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/SinaWeibo.pltpds
  94. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/SinaWeibo.pltpds.meta
  95. 15 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/SnapChat.pltpds
  96. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/SnapChat.pltpds.meta
  97. 4 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Telegram.pltpds
  98. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Telegram.pltpds.meta
  99. 2 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/TencentWeibo.pltpds
  100. 7 0
      GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/TencentWeibo.pltpds.meta

+ 71 - 71
GameClient/Assets/Game/HotUpdate/Platform/ReYunSDKManager.cs

@@ -1,71 +1,71 @@
-using System;
-using GFGGame.Launcher;
-using UnityEngine;
-
-namespace GFGGame
-{
-    public class ReYunSDKManager : SingletonMonoBase<ReYunSDKManager>
-    {
-        public const string APPKEY = "f7c3bc1b98b6d0a6b5a1642691cad1f7";
-
-        private void Awake()
-        {
-            Tracking.Instance.preInit(APPKEY);
-
-            //Tracking.Instance.setAttributionCalllbackDelegate(OnAttibutionCallback);
-            //Application.deepLinkActivated += OnDeepLinkActivated;
-            //Tracking.Instance.setDeferredDeeplinkCalllbackDelegate(OnDeeplinkCallback);
-            //Tracking.Instance.setPrintLog(LauncherConfig.onDebug > 0);
-        }
-
-        private void Start()
-        {
-            Tracking.Instance.init(APPKEY, "_default_");
-            //if (!string.IsNullOrEmpty(Application.absoluteURL))
-            //{
-            //    OnDeepLinkActivated(Application.absoluteURL);
-            //}
-            LogUtil.LogDev("ReYunSDKManager init");
-        }
-
-        public void Init()
-        {
-            
-        }
-
-        public void Register(string account)
-        {
-            LogUtil.LogDev($"ReYunSDKManager Register {account}");
-            Tracking.Instance.register(account);
-        }
-
-        public void Login(string account)
-        {
-            LogUtil.LogDev($"ReYunSDKManager Login {account}");
-            Tracking.Instance.login(account);
-        }
-
-        public void SetDD(string orderId, float price)
-        {
-            Tracking.Instance.setDD(orderId, "CNY", price);
-        }
-
-        private void OnAttibutionCallback(string result, int status)
-        {
-            
-        }
-
-        private void OnDeeplinkCallback(string msg)
-        {
-            
-        }
-
-        private void OnDeepLinkActivated(string url)
-        {
-            Tracking.Instance.setEvent("invoke");
-            Debug.Log("onDeepLinkActivated function call from unity url:" + url);
-        }
-
-    }
-}
-
+// using System;
+// using GFGGame.Launcher;
+// using UnityEngine;
+//
+// namespace GFGGame
+// {
+//     public class ReYunSDKManager : SingletonMonoBase<ReYunSDKManager>
+//     {
+//         public const string APPKEY = "f7c3bc1b98b6d0a6b5a1642691cad1f7";
+//
+//         private void Awake()
+//         {
+//             Tracking.Instance.preInit(APPKEY);
+//
+//             //Tracking.Instance.setAttributionCalllbackDelegate(OnAttibutionCallback);
+//             //Application.deepLinkActivated += OnDeepLinkActivated;
+//             //Tracking.Instance.setDeferredDeeplinkCalllbackDelegate(OnDeeplinkCallback);
+//             //Tracking.Instance.setPrintLog(LauncherConfig.onDebug > 0);
+//         }
+//
+//         private void Start()
+//         {
+//             Tracking.Instance.init(APPKEY, "_default_");
+//             //if (!string.IsNullOrEmpty(Application.absoluteURL))
+//             //{
+//             //    OnDeepLinkActivated(Application.absoluteURL);
+//             //}
+//             LogUtil.LogDev("ReYunSDKManager init");
+//         }
+//
+//         public void Init()
+//         {
+//             
+//         }
+//
+//         public void Register(string account)
+//         {
+//             LogUtil.LogDev($"ReYunSDKManager Register {account}");
+//             Tracking.Instance.register(account);
+//         }
+//
+//         public void Login(string account)
+//         {
+//             LogUtil.LogDev($"ReYunSDKManager Login {account}");
+//             Tracking.Instance.login(account);
+//         }
+//
+//         public void SetDD(string orderId, float price)
+//         {
+//             Tracking.Instance.setDD(orderId, "CNY", price);
+//         }
+//
+//         private void OnAttibutionCallback(string result, int status)
+//         {
+//             
+//         }
+//
+//         private void OnDeeplinkCallback(string msg)
+//         {
+//             
+//         }
+//
+//         private void OnDeepLinkActivated(string url)
+//         {
+//             Tracking.Instance.setEvent("invoke");
+//             Debug.Log("onDeepLinkActivated function call from unity url:" + url);
+//         }
+//
+//     }
+// }
+//

+ 3 - 3
GameClient/Assets/Game/Launcher/Platform/QDDouYouManagerInitIos.cs

@@ -1,6 +1,6 @@
 using DouYouSdk;
+using LitJson;
 using UniFramework.Event;
-using Unity.Plastic.Newtonsoft.Json;
 using UnityEngine;
 
 namespace GFGGame.Launcher
@@ -99,7 +99,7 @@ namespace GFGGame.Launcher
                 ext = HandleNullString(ext)
             };
 
-            string paymentJson = JsonConvert.SerializeObject(data);
+            string paymentJson = JsonMapper.ToJson(data);
             douYouIosSDKHandler?.SdkPaymentWithJson(paymentJson);
         }
 
@@ -130,7 +130,7 @@ namespace GFGGame.Launcher
                 party_name = HandleNullString(partyName),
                 role_balence = HandleNullString(roleBalence),
             };
-            string roleJson = JsonConvert.SerializeObject(data);
+            string roleJson = JsonMapper.ToJson(data);
             douYouIosSDKHandler?.SDKRoleInfo(roleJson);
         }
 

+ 0 - 564
GameClient/Assets/Game/Launcher/ReYunSDK/MiniJSON.cs

@@ -1,564 +0,0 @@
-/*
- * Copyright (c) 2013 Calvin Rien
- *
- * Based on the JSON parser by Patrick van Bergen
- * http://techblog.procurios.nl/k/618/news/view/14605/14863/How-do-I-write-my-own-parser-for-JSON.html
- *
- * Simplified it so that it doesn't throw exceptions
- * and can be used in Unity iPhone with maximum code stripping.
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.IO;
-using System.Text;
-
-namespace MiniJSON {
-    // Example usage:
-    //
-    //  using UnityEngine;
-    //  using System.Collections;
-    //  using System.Collections.Generic;
-    //  using MiniJSON;
-    //
-    //  public class MiniJSONTest : MonoBehaviour {
-    //      void Start () {
-    //          var jsonString = "{ \"array\": [1.44,2,3], " +
-    //                          "\"object\": {\"key1\":\"value1\", \"key2\":256}, " +
-    //                          "\"string\": \"The quick brown fox \\\"jumps\\\" over the lazy dog \", " +
-    //                          "\"unicode\": \"\\u3041 Men\u00fa sesi\u00f3n\", " +
-    //                          "\"int\": 65536, " +
-    //                          "\"float\": 3.1415926, " +
-    //                          "\"bool\": true, " +
-    //                          "\"null\": null }";
-    //
-    //          var dict = Json.Deserialize(jsonString) as Dictionary<string,object>;
-    //
-    //          Debug.Log("deserialized: " + dict.GetType());
-    //          Debug.Log("dict['array'][0]: " + ((List<object>) dict["array"])[0]);
-    //          Debug.Log("dict['string']: " + (string) dict["string"]);
-    //          Debug.Log("dict['float']: " + (double) dict["float"]); // floats come out as doubles
-    //          Debug.Log("dict['int']: " + (long) dict["int"]); // ints come out as longs
-    //          Debug.Log("dict['unicode']: " + (string) dict["unicode"]);
-    //
-    //          var str = Json.Serialize(dict);
-    //
-    //          Debug.Log("serialized: " + str);
-    //      }
-    //  }
-
-    /// <summary>
-    /// This class encodes and decodes JSON strings.
-    /// Spec. details, see http://www.json.org/
-    ///
-    /// JSON uses Arrays and Objects. These correspond here to the datatypes IList and IDictionary.
-    /// All numbers are parsed to doubles.
-    /// </summary>
-    public static class Json {
-        /// <summary>
-        /// Parses the string json into a value
-        /// </summary>
-        /// <param name="json">A JSON string.</param>
-        /// <returns>An List&lt;object&gt;, a Dictionary&lt;string, object&gt;, a double, an integer,a string, null, true, or false</returns>
-        public static object Deserialize(string json) {
-            // save the string for debug information
-            if (json == null) {
-                return null;
-            }
-
-            return Parser.Parse(json);
-        }
-
-        sealed class Parser : IDisposable {
-            const string WORD_BREAK = "{}[],:\"";
-
-            public static bool IsWordBreak(char c) {
-                return Char.IsWhiteSpace(c) || WORD_BREAK.IndexOf(c) != -1;
-            }
-
-            const string HEX_DIGIT = "0123456789ABCDEFabcdef";
-
-            public static bool IsHexDigit(char c) {
-                return HEX_DIGIT.IndexOf(c) != -1;
-            }
-
-            enum TOKEN {
-                NONE,
-                CURLY_OPEN,
-                CURLY_CLOSE,
-                SQUARED_OPEN,
-                SQUARED_CLOSE,
-                COLON,
-                COMMA,
-                STRING,
-                NUMBER,
-                TRUE,
-                FALSE,
-                NULL
-            };
-
-            StringReader json;
-
-            Parser(string jsonString) {
-                json = new StringReader(jsonString);
-            }
-
-            public static object Parse(string jsonString) {
-                using (var instance = new Parser(jsonString)) {
-                    return instance.ParseValue();
-                }
-            }
-
-            public void Dispose() {
-                json.Dispose();
-                json = null;
-            }
-
-            Dictionary<string, object> ParseObject() {
-                Dictionary<string, object> table = new Dictionary<string, object>();
-
-                // ditch opening brace
-                json.Read();
-
-                // {
-                while (true) {
-                    switch (NextToken) {
-                    case TOKEN.NONE:
-                        return null;
-                    case TOKEN.COMMA:
-                        continue;
-                    case TOKEN.CURLY_CLOSE:
-                        return table;
-                    case TOKEN.STRING:
-                        // name
-                        string name = ParseString();
-                        if (name == null) {
-                            return null;
-                        }
-
-                        // :
-                        if (NextToken != TOKEN.COLON) {
-                            return null;
-                        }
-                        // ditch the colon
-                        json.Read();
-
-                        // value
-                        TOKEN valueToken = NextToken;
-                        object value = ParseByToken(valueToken);
-                        if(value==null && valueToken!=TOKEN.NULL)
-                            return null;
-                        table[name] = value;
-                        break;
-                    default:
-                        return null;
-                    }
-                }
-            }
-
-            List<object> ParseArray() {
-                List<object> array = new List<object>();
-
-                // ditch opening bracket
-                json.Read();
-
-                // [
-                var parsing = true;
-                while (parsing) {
-                    TOKEN nextToken = NextToken;
-
-                    switch (nextToken) {
-                    case TOKEN.NONE:
-                        return null;
-                    case TOKEN.COMMA:
-                        continue;
-                    case TOKEN.SQUARED_CLOSE:
-                        parsing = false;
-                        break;
-                    default:
-                        object value = ParseByToken(nextToken);
-                        if(value==null && nextToken!=TOKEN.NULL)
-                            return null;
-                        array.Add(value);
-                        break;
-                    }
-                }
-
-                return array;
-            }
-
-            object ParseValue() {
-                TOKEN nextToken = NextToken;
-                return ParseByToken(nextToken);
-            }
-
-            object ParseByToken(TOKEN token) {
-                switch (token) {
-                case TOKEN.STRING:
-                    return ParseString();
-                case TOKEN.NUMBER:
-                    return ParseNumber();
-                case TOKEN.CURLY_OPEN:
-                    return ParseObject();
-                case TOKEN.SQUARED_OPEN:
-                    return ParseArray();
-                case TOKEN.TRUE:
-                    return true;
-                case TOKEN.FALSE:
-                    return false;
-                case TOKEN.NULL:
-                    return null;
-                default:
-                    return null;
-                }
-            }
-
-            string ParseString() {
-                StringBuilder s = new StringBuilder();
-                char c;
-
-                // ditch opening quote
-                json.Read();
-
-                bool parsing = true;
-                while (parsing) {
-
-                    if (json.Peek() == -1) {
-                        parsing = false;
-                        break;
-                    }
-
-                    c = NextChar;
-                    switch (c) {
-                    case '"':
-                        parsing = false;
-                        break;
-                    case '\\':
-                        if (json.Peek() == -1) {
-                            parsing = false;
-                            break;
-                        }
-
-                        c = NextChar;
-                        switch (c) {
-                        case '"':
-                        case '\\':
-                        case '/':
-                            s.Append(c);
-                            break;
-                        case 'b':
-                            s.Append('\b');
-                            break;
-                        case 'f':
-                            s.Append('\f');
-                            break;
-                        case 'n':
-                            s.Append('\n');
-                            break;
-                        case 'r':
-                            s.Append('\r');
-                            break;
-                        case 't':
-                            s.Append('\t');
-                            break;
-                        case 'u':
-                            var hex = new char[4];
-
-                            for (int i=0; i< 4; i++) {
-                                hex[i] = NextChar;
-                                if (!IsHexDigit(hex[i]))
-                                    return null;
-                            }
-
-                            s.Append((char) Convert.ToInt32(new string(hex), 16));
-                            break;
-                        }
-                        break;
-                    default:
-                        s.Append(c);
-                        break;
-                    }
-                }
-
-                return s.ToString();
-            }
-
-            object ParseNumber() {
-                string number = NextWord;
-
-                if (number.IndexOf('.') == -1 && number.IndexOf('E') == -1 && number.IndexOf('e') == -1) {
-                    long parsedInt;
-                    Int64.TryParse(number, System.Globalization.NumberStyles.Any, System.Globalization.CultureInfo.InvariantCulture, out parsedInt);
-                    return parsedInt;
-                }
-
-                double parsedDouble;
-                Double.TryParse(number, System.Globalization.NumberStyles.Any, System.Globalization.CultureInfo.InvariantCulture, out parsedDouble);
-                return parsedDouble;
-            }
-
-            void EatWhitespace() {
-                while (Char.IsWhiteSpace(PeekChar)) {
-                    json.Read();
-
-                    if (json.Peek() == -1) {
-                        break;
-                    }
-                }
-            }
-
-            char PeekChar {
-                get {
-                    return Convert.ToChar(json.Peek());
-                }
-            }
-
-            char NextChar {
-                get {
-                    return Convert.ToChar(json.Read());
-                }
-            }
-
-            string NextWord {
-                get {
-                    StringBuilder word = new StringBuilder();
-
-                    while (!IsWordBreak(PeekChar)) {
-                        word.Append(NextChar);
-
-                        if (json.Peek() == -1) {
-                            break;
-                        }
-                    }
-
-                    return word.ToString();
-                }
-            }
-
-            TOKEN NextToken {
-                get {
-                    EatWhitespace();
-
-                    if (json.Peek() == -1) {
-                        return TOKEN.NONE;
-                    }
-
-                    switch (PeekChar) {
-                    case '{':
-                        return TOKEN.CURLY_OPEN;
-                    case '}':
-                        json.Read();
-                        return TOKEN.CURLY_CLOSE;
-                    case '[':
-                        return TOKEN.SQUARED_OPEN;
-                    case ']':
-                        json.Read();
-                        return TOKEN.SQUARED_CLOSE;
-                    case ',':
-                        json.Read();
-                        return TOKEN.COMMA;
-                    case '"':
-                        return TOKEN.STRING;
-                    case ':':
-                        return TOKEN.COLON;
-                    case '0':
-                    case '1':
-                    case '2':
-                    case '3':
-                    case '4':
-                    case '5':
-                    case '6':
-                    case '7':
-                    case '8':
-                    case '9':
-                    case '-':
-                        return TOKEN.NUMBER;
-                    }
-
-                    switch (NextWord) {
-                    case "false":
-                        return TOKEN.FALSE;
-                    case "true":
-                        return TOKEN.TRUE;
-                    case "null":
-                        return TOKEN.NULL;
-                    }
-
-                    return TOKEN.NONE;
-                }
-            }
-        }
-
-        /// <summary>
-        /// Converts a IDictionary / IList object or a simple type (string, int, etc.) into a JSON string
-        /// </summary>
-        /// <param name="obj">A Dictionary&lt;string, object&gt; / List&lt;object&gt;</param>
-        /// <returns>A JSON encoded string, or null if object 'json' is not serializable</returns>
-        public static string Serialize(object obj) {
-            return Serializer.Serialize(obj);
-        }
-
-        sealed class Serializer {
-            StringBuilder builder;
-
-            Serializer() {
-                builder = new StringBuilder();
-            }
-
-            public static string Serialize(object obj) {
-                var instance = new Serializer();
-
-                instance.SerializeValue(obj);
-
-                return instance.builder.ToString();
-            }
-
-            void SerializeValue(object value) {
-                IList asList;
-                IDictionary asDict;
-                string asStr;
-
-                if (value == null) {
-                    builder.Append("null");
-                } else if ((asStr = value as string) != null) {
-                    SerializeString(asStr);
-                } else if (value is bool) {
-                    builder.Append((bool) value ? "true" : "false");
-                } else if ((asList = value as IList) != null) {
-                    SerializeArray(asList);
-                } else if ((asDict = value as IDictionary) != null) {
-                    SerializeObject(asDict);
-                } else if (value is char) {
-                    SerializeString(new string((char) value, 1));
-                } else {
-                    SerializeOther(value);
-                }
-            }
-
-            void SerializeObject(IDictionary obj) {
-                bool first = true;
-
-                builder.Append('{');
-
-                foreach (object e in obj.Keys) {
-                    if (!first) {
-                        builder.Append(',');
-                    }
-
-                    SerializeString(e.ToString());
-                    builder.Append(':');
-
-                    SerializeValue(obj[e]);
-
-                    first = false;
-                }
-
-                builder.Append('}');
-            }
-
-            void SerializeArray(IList anArray) {
-                builder.Append('[');
-
-                bool first = true;
-
-                for (int i=0; i<anArray.Count; i++) {
-                    object obj = anArray[i];
-                    if (!first) {
-                        builder.Append(',');
-                    }
-
-                    SerializeValue(obj);
-
-                    first = false;
-                }
-
-                builder.Append(']');
-            }
-
-            void SerializeString(string str) {
-                builder.Append('\"');
-
-                char[] charArray = str.ToCharArray();
-                for (int i=0; i<charArray.Length; i++) {
-                    char c = charArray[i];
-                    switch (c) {
-                    case '"':
-                        builder.Append("\\\"");
-                        break;
-                    case '\\':
-                        builder.Append("\\\\");
-                        break;
-                    case '\b':
-                        builder.Append("\\b");
-                        break;
-                    case '\f':
-                        builder.Append("\\f");
-                        break;
-                    case '\n':
-                        builder.Append("\\n");
-                        break;
-                    case '\r':
-                        builder.Append("\\r");
-                        break;
-                    case '\t':
-                        builder.Append("\\t");
-                        break;
-                    default:
-                        int codepoint = Convert.ToInt32(c);
-                        if ((codepoint >= 32) && (codepoint <= 126)) {
-                            builder.Append(c);
-                        } else {
-                            builder.Append("\\u");
-                            builder.Append(codepoint.ToString("x4"));
-                        }
-                        break;
-                    }
-                }
-
-                builder.Append('\"');
-            }
-
-            void SerializeOther(object value) {
-                // NOTE: decimals lose precision during serialization.
-                // They always have, I'm just letting you know.
-                // Previously floats and doubles lost precision too.
-                if (value is float) {
-                    builder.Append(((float) value).ToString("R", System.Globalization.CultureInfo.InvariantCulture));
-                } else if (value is int
-                    || value is uint
-                    || value is long
-                    || value is sbyte
-                    || value is byte
-                    || value is short
-                    || value is ushort
-                    || value is ulong) {
-                    builder.Append(value);
-                } else if (value is double
-                    || value is decimal) {
-                    builder.Append(Convert.ToDouble(value).ToString("R", System.Globalization.CultureInfo.InvariantCulture));
-                } else {
-                    SerializeString(value.ToString());
-                }
-            }
-        }
-    }
-}

+ 0 - 667
GameClient/Assets/Game/Launcher/ReYunSDK/Tracking.cs

@@ -1,667 +0,0 @@
-using UnityEngine;
-
-using System.Runtime.InteropServices;
-using AOT;
-using System;
-using System.Collections.Generic;
-using System.Text;
-using System.IO;
-using System.Text.RegularExpressions;
-using System.Collections;
-
-public class Tracking: MonoBehaviour
-{
-	private static Tracking _instance = null;
-
-    //private static Regex regex = new Regex("^([a-zA-Z])([a-zA-Z0-9_]){0,63}$");
-
-    public static Tracking Instance {
-		get {
-			if (!_instance) {
-				_instance = FindObjectOfType (typeof(Tracking)) as Tracking;
-				if (!_instance) {
-					GameObject am = new GameObject ("Tracking");
-					_instance = am.AddComponent (typeof(Tracking)) as Tracking;
-				}
-			}
-			return _instance;           
-		}
-	}
-
-    private static List<Action> waitingTaskList = new List<Action>();
-
-    
-    private static List<Action> executingTaskList = new List<Action>();
-
-    public static void PostTask(Action task)
-    {
-        lock (waitingTaskList)
-        {
-            waitingTaskList.Add(task);
-        }
-    }
-
-    private void Update()
-    {
-        lock (waitingTaskList)
-        {
-            if (waitingTaskList.Count > 0)
-            {
-                executingTaskList.AddRange(waitingTaskList);
-
-                waitingTaskList.Clear();
-            }
-        }
-
-        for (int i = 0; i < executingTaskList.Count; ++i)
-        {
-            Action task = executingTaskList[i];
-            try
-            {
-                task();
-            }
-            catch (Exception e)
-            {
-                Debug.LogError(e.Message, this);
-            }
-        }
-
-        executingTaskList.Clear();
-    }
-
-
-
-    void Awake ()
-	{
-		DontDestroyOnLoad (this);
-	}
-
-    public delegate void DeferredDeeplinkCallBack(string result);
-
-    public delegate void AttributionCalllback(string result, int status);
-
-
-    private DeferredDeeplinkCallBack deferredDeeplinCallback_private = null;
-
-    private AttributionCalllback attributionCalllback_private = null;
-
-#if UNITY_IOS && !UNITY_EDITOR
-
-    internal delegate void _internalDeferredDeeplinkCallBack(string result);
-
-    internal delegate void _internalAttributionCalllback(string result, int status);
-
-    [DllImport ("__Internal")]
-	private static extern void _internalInitWithAppKeyAndChannel_Tracking (string appKey, string channelId);
-
-    [DllImport ("__Internal")]
-    private static extern void _preInit_newer (string appKey);
-
-    [DllImport ("__Internal")]
-    private static extern void _internalInitWithAppKeyAndChannel_Tracking_newer (string appKey, string channelId,string caid1,string caid2,string oid,string install_params,string startup_params);
-
-	[DllImport ("__Internal")]
-	private static extern void _internalSetRegisterWithAccountID_Tracking_newer (string account,string params_string);
-
-    [DllImport ("__Internal")]
-	private static extern void _internalSetLoginWithAccountIDAndServerId_Tracking_newer (string account,string serverId,string params_string);
-
-	[DllImport ("__Internal")]
-	private static extern void _internalSetRyzf_Tracking_newer (string ryTID, string ryzfType, string hbType, float hbAmount,string params_string);
-
-	[DllImport ("__Internal")]
-	private static extern void _internalSetDD_Tracking_newer (string ryTID, string hbType, float hbAmount,string params_string);
-
-	[DllImport ("__Internal")]
-	private static extern void _internalSetEvent_Tracking_newer (string EventName,string params_string);
-
-    [DllImport ("__Internal")]
-    private static extern void _internalSetTrackViewDuration_Tracking_newer (string viewID,long duration,string params_string);
-
-    [DllImport ("__Internal")]
-    private static extern void _internalSetAdShow_Tracking_newer(string adPlatform,string adid,int success,string params_string);
-
-    [DllImport ("__Internal")]
-    private static extern void _internalSetAdClick_Tracking_newer(string adPlatform,string adid,string params_string);
-
-    [DllImport ("__Internal")]
-    private static extern void _internalSetTrackAppDuration_Tracking_newer(long duration,string params_string);
-
-	[DllImport ("__Internal")]
-	private static extern string _internalGetDeviceId_Tracking ();
-
-	[DllImport ("__Internal")]
-	private static extern void _internalSetPrintLog_Tracking (bool printLog);
-
-    [DllImport ("__Internal")]
-	private static extern void _internalSetASAEnable_Tracking (bool enable);
-
-  
-
-    [DllImport("__Internal")]
-    private static extern void _internal_SetAttributionCalllbackDelegate_Tracing(_internalAttributionCalllback callback);
-
-    [DllImport("__Internal")]
-    private static extern void _internal_SetDeferredDeeplinkCallBack_Tracking(_internalDeferredDeeplinkCallBack callback);
-
-
-    [DllImport ("__Internal")]
-	private static extern void _internalSetIPAdds6Enable_Tracking (bool enable);
-#endif
-
-
-#if UNITY_ANDROID && !UNITY_EDITOR
-    public static AndroidJavaObject getApplicationContext ()
-	{
-		
-		using (AndroidJavaClass jc = new AndroidJavaClass ("com.unity3d.player.UnityPlayer")) {
-			using (AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject> ("currentActivity")) {
-				return jo.Call<AndroidJavaObject> ("getApplicationContext");
-			}
-		}
-		
-		return null;
-	}
-#endif
-
-    /// <summary>
-    /// 预初始化方法   
-    /// </summary>
-    public void preInit(string appKey)
-    {
-
-#if UNITY_IOS && !UNITY_EDITOR
-      
-		_preInit_newer (appKey);
-#elif UNITY_ANDROID && !UNITY_EDITOR
-        using (AndroidJavaClass TrackingIO = new AndroidJavaClass("com.reyun.tracking.sdk.Tracking"))
-        {
-            TrackingIO.CallStatic("preInit", getApplicationContext(), appKey);
-        }
-#else
-        Debug.LogError("Current platform not implemented!");
-#endif
-
-    }
-    /// <summary>
-    /// 初始化方法   
-    /// </summary>
-    /// <param name="appKey">appKey</param>
-    /// <param name="channelId">标识推广渠道的字符</param>
-    /// <param name="caid1">caid1 ios 专用字段,广告协会caid字段,默认为空</param>
-    /// <param name="caid2">caid2 ios 专用字段,广告协会caid字段,默认为空</param>
-    /// <param name="startupParams">自定义startup参数</param>
-    /// <param name="installParams">自定义install参数</param>
-    public void init (string appKey, string channelId,string caid1 = null,string caid2 = null,
-        Dictionary<string,object> startupParams = null, Dictionary<string, object> installParams = null)
-	{
-#if UNITY_IOS && !UNITY_EDITOR
-        string  paramstring_install = DictionaryToJsonString(installParams);
-        if (paramstring_install == null) {
-            paramstring_install = "{}";
-        }
-        string  paramstring_startup = DictionaryToJsonString(startupParams);
-        if (paramstring_startup == null) {
-            paramstring_startup = "{}";
-        }
-		_internalInitWithAppKeyAndChannel_Tracking_newer (appKey, channelId,caid1,caid2,null, paramstring_install,paramstring_startup);
-#elif UNITY_ANDROID && !UNITY_EDITOR
-        string  paramstring_install = DictionaryToJsonString(installParams);
-        if (paramstring_install == null) {
-            paramstring_install = "{}";
-        }
-        string  paramstring_startup = DictionaryToJsonString(startupParams);
-        if (paramstring_startup == null) {
-            paramstring_startup = "{}";
-        }
-	    using (AndroidJavaClass TrackingIO = new AndroidJavaClass ("com.reyun.tracking.sdk.Tracking")) {
-		    TrackingIO.CallStatic ("initWithKeyAndChannelId", getApplicationContext (), appKey, channelId,paramstring_startup,paramstring_install,null,false);
-	    }
-#else
-        Debug.LogError("Current platform not implemented!");
-#endif
-    }
-
-    /// <summary>
-    /// 玩家服务器注册
-    /// </summary>
-    /// <param name="account">账号ID</param>
-    /// 
-    public void register (string account, Dictionary<string, object> customParams = null)
-	{
-#if UNITY_IOS && !UNITY_EDITOR
-        string paramstring = DictionaryToJsonString(customParams);
-		_internalSetRegisterWithAccountID_Tracking_newer(account,paramstring);
-#elif UNITY_ANDROID && !UNITY_EDITOR
-        string  paramstring = DictionaryToJsonString(customParams);
-        if (paramstring == null) {
-            paramstring = "{}";
-        }
-		using (AndroidJavaClass TrackingIO = new AndroidJavaClass ("com.reyun.tracking.sdk.Tracking")) {
-			TrackingIO.CallStatic ("setRegisterWithAccountID", account,paramstring);
-		}
-#else
-        Debug.LogError("Current platform not implemented!");
-#endif
-
-    }
-
-    /// <summary>
-    /// 玩家的账号登陆服务器
-    /// </summary>
-    /// <param name="account">账号</param>
-    public void login (string account,string serverId = null, Dictionary<string, object> customParams = null)
-	{
-
-#if UNITY_IOS && !UNITY_EDITOR
-        string paramstring = DictionaryToJsonString(customParams);
-		_internalSetLoginWithAccountIDAndServerId_Tracking_newer (account,serverId,paramstring);
-#elif UNITY_ANDROID && !UNITY_EDITOR
-        string  paramstring = DictionaryToJsonString(customParams);
-        if (paramstring == null) {
-            paramstring = "{}";
-        }
-		using (AndroidJavaClass TrackingIO = new AndroidJavaClass ("com.reyun.tracking.sdk.Tracking")) {
-			TrackingIO.CallStatic ("setLoginSuccessBusiness", account,serverId,paramstring);
-		}
-#else
-        Debug.LogError("Current platform not implemented!");
-#endif
-    }
-
-
-    /// <summary>
-    /// 玩家的充值数据
-    /// </summary>
-    /// <param name="ryTID">交易的流水号</param>
-    /// <param name="ryzfType">支付类型</param>
-    /// <param name="hbType">货币类型</param>
-    /// <param name="hbAmount">支付的真实货币的金额</param>
-    public void setryzf (string ryTID, string ryzfType, string hbType, float hbAmount, Dictionary<string, object> customParams = null)
-	{
-#if UNITY_IOS && !UNITY_EDITOR
-        string paramstring = DictionaryToJsonString(customParams);
-		_internalSetRyzf_Tracking_newer (ryTID, ryzfType, hbType, hbAmount,paramstring);
-#elif UNITY_ANDROID && !UNITY_EDITOR
-        string  paramstring = DictionaryToJsonString(customParams);
-        if (paramstring == null) {
-            paramstring = "{}";
-        }
-		using (AndroidJavaClass TrackingIO = new AndroidJavaClass ("com.reyun.tracking.sdk.Tracking")) {
-		    TrackingIO.CallStatic ("setPayment", ryTID, ryzfType, hbType, hbAmount,paramstring);
-		}
-#else
-        Debug.LogError("Current platform not implemented!");
-#endif
-    }
-
-    /// <summary>
-    /// 玩家的订单数据
-    /// </summary>
-    /// <param name="ryTID">交易的流水号</param>
-    /// <param name="hbType">货币类型</param>
-    /// <param name="hbAmount">支付的真实货币的金额</param>
-	public void setDD (string ryTID, string hbType, float hbAmount, Dictionary<string, object> customParams = null)
-	{
-#if UNITY_IOS && !UNITY_EDITOR
-        string paramstring = DictionaryToJsonString(customParams);
-		_internalSetDD_Tracking_newer (ryTID,hbType,hbAmount,paramstring);
-#elif UNITY_ANDROID && !UNITY_EDITOR
-        string  paramstring = DictionaryToJsonString(customParams);
-        if (paramstring == null) {
-            paramstring = "{}";
-        }
-		using (AndroidJavaClass TrackingIO = new AndroidJavaClass ("com.reyun.tracking.sdk.Tracking")) {
-		TrackingIO.CallStatic ("setOrder", ryTID, hbType, hbAmount,paramstring);
-		}
-#else
-        Debug.LogError("Current platform not implemented!");
-#endif
-    }
-
-    /// <summary>
-    /// 统计玩家的自定义事件
-    /// </summary>
-    /// <param name="eventName">事件名 必须为event_1到event_30</param>
-    public void setEvent (string eventName, Dictionary<string, object> customParams = null)
-	{
-#if UNITY_IOS && !UNITY_EDITOR
-        string paramstring = DictionaryToJsonString(customParams);
-		_internalSetEvent_Tracking_newer (eventName,paramstring);
-#elif UNITY_ANDROID && !UNITY_EDITOR
-        string  paramstring = DictionaryToJsonString(customParams);
-        if (paramstring == null) {
-            paramstring = "{}";
-        }
-		using (AndroidJavaClass reyun = new AndroidJavaClass ("com.reyun.tracking.sdk.Tracking")) {
-			reyun.CallStatic ("setEvent", eventName, paramstring);
-		}
-#else
-        Debug.LogError("Current platform not implemented!");
-#endif
-    }
-
-    /// <summary>
-    /// 监测页面展示时长
-    /// </summary>
-    /// <param name="pageID">页面唯一标识</param>
-    /// <param name="duration">页面展示时长</param>
-    public void setTrackViewDuration(string pageID,long duration, Dictionary<string, object> customParams = null)
-    {
-#if UNITY_IOS && !UNITY_EDITOR
-        string paramstring = DictionaryToJsonString(customParams);
-        _internalSetTrackViewDuration_Tracking_newer(pageID,duration,paramstring);
-#elif UNITY_ANDROID && !UNITY_EDITOR
-        string  paramstring = DictionaryToJsonString(customParams);
-        if (paramstring == null) {
-            paramstring = "{}";
-        }
-        using (AndroidJavaClass reyun = new AndroidJavaClass("com.reyun.tracking.sdk.Tracking"))
-        {
-            reyun.CallStatic("setPageDuration", pageID, duration*1000,paramstring);
-        }
-#else
-        Debug.LogError("Current platform not implemented!");
-#endif
-    }
-
-    /// <summary>
-    /// //广告展示时调用
-    /// </summary>
-    /// <param name="adPlatform">广告平台缩写,如穿山甲广告平台传入 "csj"</param>
-    /// <param name="adId">广告位ID</param>
-    /// /// <param name="playSuccess">是否展示成功</param>
-    public void setTrackAdShow(string adPlatform,string adId,bool playSuccess, Dictionary<string, object> customParams = null)
-    {
-#if UNITY_IOS && !UNITY_EDITOR
-        string paramstring = DictionaryToJsonString(customParams);
-        int successInt = playSuccess ? 1 : 2;
-        _internalSetAdShow_Tracking_newer(adPlatform,adId,successInt,paramstring);
-#elif UNITY_ANDROID && !UNITY_EDITOR
-        string successString = playSuccess ? "1" : "2";
-        string  paramstring = DictionaryToJsonString(customParams);
-        if (paramstring == null) {
-            paramstring = "{}";
-        }
-        using (AndroidJavaClass reyun = new AndroidJavaClass("com.reyun.tracking.sdk.Tracking"))
-        {
-            reyun.CallStatic("setAdShow", adPlatform, adId,successString,paramstring);
-        }
-#else
-        Debug.LogError("Current platform not implemented!");
-#endif
-    }
-
-    /// <summary>
-    /// //广告点击时调用
-    /// </summary>
-    /// <param name="adPlatform">广告平台缩写,如穿山甲广告平台传入 "csj"</param>
-    /// <param name="adId">广告位ID</param>
-    public void setTrackAdClick(string adPlatform, string adId, Dictionary<string, object> customParams = null)
-    {
-       
-#if UNITY_IOS && !UNITY_EDITOR
-        string paramstring = DictionaryToJsonString(customParams);
-        _internalSetAdClick_Tracking_newer(adPlatform,adId,paramstring);
-#elif UNITY_ANDROID && !UNITY_EDITOR
-        string  paramstring = DictionaryToJsonString(customParams);
-        if (paramstring == null) {
-            paramstring = "{}";
-        }
-        using (AndroidJavaClass reyun = new AndroidJavaClass("com.reyun.tracking.sdk.Tracking"))
-        {
-            reyun.CallStatic("setAdClick", adPlatform, adId,paramstring);
-        }
-#else
-        Debug.LogError("Current platform not implemented!");
-#endif
-    }
-
-    /// <summary>
-    /// 统计APP运行时长
-    /// </summary>
-    /// <param name="duration">时间长度</param>
-    public void setTrackAppDuration(long duration, Dictionary<string, object> customParams = null)
-    {
-#if UNITY_IOS && !UNITY_EDITOR
-        string paramstring = DictionaryToJsonString(customParams);
-        _internalSetTrackAppDuration_Tracking_newer(duration,paramstring);
-#elif UNITY_ANDROID && !UNITY_EDITOR
-        string  paramstring = DictionaryToJsonString(customParams);
-        if (paramstring == null) {
-            paramstring = "{}";
-        }
-        using (AndroidJavaClass reyun = new AndroidJavaClass("com.reyun.tracking.sdk.Tracking"))
-        {
-            reyun.CallStatic("setAppDuration", duration*1000,paramstring);
-        }
-#else
-        Debug.LogError("Current platform not implemented!");
-#endif
-    }
-
-
-
-    /// <summary>
-    /// 获取用户的设备ID信息
-    /// </summary>
-    public string getDeviceId ()
-	{
-#if UNITY_IOS && !UNITY_EDITOR
-		return _internalGetDeviceId_Tracking ();
-#elif UNITY_ANDROID && !UNITY_EDITOR
-		string str = "unknown";
-
-		using (AndroidJavaClass TrackingIO = new AndroidJavaClass ("com.reyun.tracking.sdk.Tracking")) {
-			str = TrackingIO.CallStatic<string> ("getDeviceId");
-		}
-		return str;
-#else
-        Debug.LogError("Current platform not implemented!");
-        return "unknown";
-#endif
-    }
-
-	/// 开启日志打印
-	public void setPrintLog (bool print)
-	{
-#if UNITY_IOS && !UNITY_EDITOR
-		_internalSetPrintLog_Tracking (print);
-#elif UNITY_ANDROID && !UNITY_EDITOR
-	  using (AndroidJavaClass TrackingIO = new AndroidJavaClass ("com.reyun.tracking.sdk.Tracking")) {
-	        TrackingIO.CallStatic("setDebugMode", print);
-	  }
-#else
-        Debug.LogError("Current platform not implemented!");
-#endif
-    }
-
-    public void setASAEnable(bool enable)
-    {
-#if UNITY_IOS && !UNITY_EDITOR
-		_internalSetASAEnable_Tracking (enable);
-#else
-        Debug.LogError("Current platform not implemented!");
-#endif
-    }
-
-
-#if UNITY_IOS && !UNITY_EDITOR
-    [MonoPInvokeCallback(typeof(_internalDeferredDeeplinkCallBack))]
-    private static void OnDeeplinkCallback(string msg)
-    {
-        PostTask(() =>
-        {
-            if (Tracking.Instance.deferredDeeplinCallback_private != null && msg != null)
-            {
-                Tracking.Instance.deferredDeeplinCallback_private.Invoke(msg);
-            }
-        });
-    }
-
-    [MonoPInvokeCallback(typeof(_internalAttributionCalllback))]
-    private static void OnAttibutionCallback(string result, int status)
-    {
-        PostTask(() =>
-        {
-            if (Tracking.Instance.attributionCalllback_private != null)
-            {
-                Tracking.Instance.attributionCalllback_private.Invoke(result, status);
-            }
-        });
-    }
-#endif
-
-    #region iOS install Attribution 
-    public void setAttributionCalllbackDelegate(AttributionCalllback callback)
-    {
-#if UNITY_IOS && !UNITY_EDITOR
-        Tracking.Instance.attributionCalllback_private = callback;
-        _internal_SetAttributionCalllbackDelegate_Tracing(OnAttibutionCallback);
-#elif UNITY_ANDROID && !UNITY_EDITOR
-        Tracking.Instance.attributionCalllback_private = callback;
-        using (AndroidJavaClass TrackingIO = new AndroidJavaClass("com.reyun.tracking.sdk.Tracking"))
-        {
-            TrackingIO.CallStatic("setAttributionQueryListener", new AndroidAttributionQuery());
-        }
-#else
-        Debug.LogError("Current platform not implemented!");
-#endif
-    }
-    #endregion
-
-    #region iOS deferred deeplink 
-    public void setDeferredDeeplinkCalllbackDelegate(DeferredDeeplinkCallBack callback)
-    {
-#if UNITY_IOS && !UNITY_EDITOR
-        Tracking.Instance.deferredDeeplinCallback_private = callback;
-        _internal_SetDeferredDeeplinkCallBack_Tracking(OnDeeplinkCallback);
-#elif UNITY_ANDROID && !UNITY_EDITOR
-        Tracking.Instance.deferredDeeplinCallback_private = callback;
-        using (AndroidJavaClass TrackingIO = new AndroidJavaClass("com.reyun.tracking.sdk.Tracking"))
-        {
-            TrackingIO.CallStatic("setDeepLinkListener", new AndroidDeferredDeeplink());
-        }
-#else
-        Debug.LogError("Current platform not implemented!");
-#endif
-    }
-    #endregion
-
-
-#if UNITY_ANDROID && !UNITY_EDITOR
-    private sealed class AndroidAttributionQuery : AndroidJavaProxy {
-
-        public AndroidAttributionQuery() : base("com.reyun.tracking.utils.IAttributionQueryListener")
-        {
-        }
-        public void onComplete(int paramInt, String param_string) {
-            Tracking.PostTask(() =>
-            {
-                if (Tracking.Instance.attributionCalllback_private != null)
-                {
-                    Tracking.Instance.attributionCalllback_private.Invoke(param_string, paramInt);
-                }
-            });
-        }
-    
-    }
-
-    private sealed class AndroidDeferredDeeplink : AndroidJavaProxy
-    {
-
-        public AndroidDeferredDeeplink() : base("com.reyun.tracking.utils.IDeepLinkListener")
-        {
-        }
-        public void onComplete(bool isSuccess, String dpUrl, String dpPath)
-        {
-            Tracking.PostTask(() =>
-            {
-                if (Tracking.Instance.deferredDeeplinCallback_private != null)
-                {
-                    string jsonString = "";
-                    if (isSuccess)
-                    {
-                        jsonString += "{\"dp_url\":\"" + (dpUrl != null? dpUrl : "") + "\",";
-                        jsonString += "\"dp_path\":\"" + (dpPath != null ? dpPath : "") + "\"}";
-                    }
-                    else
-                    {
-                        jsonString = "{}";
-                    }
-                    Tracking.Instance.deferredDeeplinCallback_private.Invoke(jsonString);
-                }
-            });
-
-        }
-
-    }
-#endif
-
-    private static String DictionaryToJsonString (Dictionary<string, object> dictionary)
-    {
-        string result = null;
-        try
-        {
-            if (!CheckDictionary(dictionary)) {
-                return result;
-            }
-            result = MiniJSON.Json.Serialize(dictionary);
-        }
-        catch (Exception e)
-        {
-            Debug.LogError("ToJsonString error:" + e.Message);
-        }
-        return result;
-    }
-
-    private static bool CheckDictionary(Dictionary<string, object> dictionary)
-    {
-        if (dictionary == null || dictionary.Count == 0)
-        {
-            return false;
-        }
-        foreach (var entry in dictionary)
-        {
-            if (entry.Key == null)
-            {
-                return false;
-            }
-            if (entry.Value == null)
-            {
-                return false;
-            }
-            if (entry.Value is string stringvalue)
-            {
-                if (stringvalue == null || stringvalue.Length == 0)
-                {
-                    return false;
-                }
-            }
-        }
-        return true;
-    }
-
-    //private static bool isNumber(object value)
-    //{
-    //    if (value == null)
-    //    {
-    //        return false;
-    //    }
-    //    if (value is float || value is int
-    //                || value is uint
-    //                || value is long
-    //                || value is sbyte
-    //                || value is byte
-    //                || value is short
-    //                || value is ushort
-    //                || value is ulong
-    //                || value is double
-    //                || value is decimal)
-    //    {
-    //        return true;
-    //    }
-    //    return false;
-    //}
-}
-

BIN
GameClient/Assets/Plugins/Android/ShareSDKU3D.jar


+ 1 - 1
GameClient/Assets/Game/Launcher/ReYunSDK.meta → GameClient/Assets/Plugins/iOS/MOBTool.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 5012e50c9a507492bbe95d4cca92f934
+guid: 37a13b9d842ec4c9695c67b625a18d41
 folderAsset: yes
 DefaultImporter:
   externalObjects: {}

+ 8 - 0
GameClient/Assets/Plugins/iOS/MOBTool/iOS.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 52e200d5ee3b24d86b13bf7d20872d4e
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Plugins/iOS/MOBTool/iOS/MOBAutoPackage.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f4806ebdd2b534225bd19dc51ac03a39
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Plugins/iOS/MOBTool/iOS/MOBAutoPackage/Editor.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b9a49823d960d4d8cba065c14b6f5f16
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 1 - 0
GameClient/Assets/Plugins/iOS/MOBTool/iOS/MOBAutoPackage/Editor/MOB.keypds

@@ -0,0 +1 @@
+{"MobAppSecret":"4280a3a6df667cfce37528dec03fd9c3", "MobAppKey":"3276d3e413040", "MOBNetLater":"2"}

+ 7 - 0
GameClient/Assets/Plugins/iOS/MOBTool/iOS/MOBAutoPackage/Editor/MOB.keypds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 37be0c642a15945b595c3a9434be6a48
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 18 - 0
GameClient/Assets/Plugins/iOS/MOBTool/iOS/MOBAutoPackage/Editor/MOBPathModel.cs

@@ -0,0 +1,18 @@
+using System;
+
+namespace cn.mob.unity3d.sdkporter
+{
+	public class MOBPathModel
+	{
+		public string rootPath;
+		public string savePath;
+		public string filePath;
+		public MOBPathModel ()
+		{
+			rootPath = "";
+			savePath = "";
+			filePath = "";
+		}
+	}
+}
+

+ 1 - 1
GameClient/Assets/Game/Launcher/ReYunSDK/Tracking.cs.meta → GameClient/Assets/Plugins/iOS/MOBTool/iOS/MOBAutoPackage/Editor/MOBPathModel.cs.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 2c148af3668634b3884c9ae56a824139
+guid: 928a89d1516c347918b7524c1aafd420
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2

+ 756 - 0
GameClient/Assets/Plugins/iOS/MOBTool/iOS/MOBAutoPackage/Editor/MOBPostProcessBuild.cs

@@ -0,0 +1,756 @@
+using UnityEngine;
+using UnityEditor;
+using UnityEditor.Callbacks;
+using System.Collections;
+using cn.mob.unity3d.sdkporter;
+using System.IO;
+using System.Runtime.Serialization.Formatters.Binary;
+using System;
+
+
+#if UNITY_IOS
+
+using UnityEditor.iOS.Xcode;
+
+#if UNITY_2017_2_OR_NEWER
+using UnityEditor.iOS.Xcode.Extensions;
+#endif
+using System.Reflection;
+#endif
+
+public class MOBPostProcessBuild
+{
+    static ArrayList platformJsList;
+    static string MobAppKey;
+    //[PostProcessBuild]
+#if UNITY_IOS
+    [PostProcessBuildAttribute(88)]
+    public static void onPostProcessBuild(BuildTarget target, string targetPath)
+    {
+        MobAppKey = "";
+        if (target != BuildTarget.iOS)
+        {
+            Debug.LogWarning("Target is not iPhone. XCodePostProcess will not run");
+            return;
+        }
+
+        initMobAppKeyInfo();
+
+        //拉取配置文件中的数据
+        MOBXCodeEditorModel xcodeModel = new MOBXCodeEditorModel();
+        xcodeModel.MobAppKey = MobAppKey;
+        xcodeModel.LoadMobpds();
+        platformJsList = xcodeModel.platformJsList;
+        //导入文件
+        PBXProject xcodeProj = new PBXProject();
+        string xcodeProjPath = targetPath + "/Unity-iPhone.xcodeproj/project.pbxproj";
+        xcodeProj.ReadFromFile(xcodeProjPath);
+        //xcode Target
+
+
+        string xcodeTargetGuid = null;
+        string xcodeFrameworkTargetGuid = null;
+
+#if UNITY_2019_3_OR_NEWER
+
+        xcodeFrameworkTargetGuid = xcodeProj.GetUnityFrameworkTargetGuid();
+        xcodeTargetGuid = xcodeProj.GetUnityMainTargetGuid();
+        xcodeProj.AddFileToBuild(xcodeTargetGuid, xcodeProj.GetTargetProductFileRef(xcodeFrameworkTargetGuid));
+
+#else
+        
+        xcodeTargetGuid = xcodeProj.TargetGuidByName("Unity-iPhone");
+        xcodeFrameworkTargetGuid = xcodeTargetGuid;
+#endif
+        xcodeProj.AddBuildProperty(xcodeFrameworkTargetGuid, "ENABLE_BITCODE", "NO");
+        //plist路径targetPath
+        string plistPath = targetPath + "/Info.plist";
+        PlistDocument plistDocument = new PlistDocument();
+        plistDocument.ReadFromFile(plistPath);
+        PlistElementDict plistElements = plistDocument.root.AsDict();
+
+        //添加 MOBAppkey MOBAppSecret
+        AddAPPKey(plistElements);
+        //添加权限 等 
+        AddPermissions(xcodeModel, plistElements);
+        //添加白名单 
+        AddLSApplicationQueriesSchemes(xcodeModel, plistElements);
+        //添加 URLSchemes
+        AddURLSchemes(xcodeModel, plistElements);
+        //添加 InfoPlistSet
+        AddInfoPlistSet(xcodeModel, plistElements);
+        //写入 info.plist
+        plistDocument.WriteToFile(plistPath);
+
+        //添加 BuildSettings
+        AddBuildSettings(xcodeModel, xcodeProj, xcodeTargetGuid);
+       
+        //根据配置文件加载资源及xcode设置
+        bool hasMobFramework = false;
+
+        foreach (MOBPathModel pathModel in xcodeModel.folders)
+        {
+
+            AddFramework(pathModel.filePath, targetPath, xcodeTargetGuid, xcodeFrameworkTargetGuid, pathModel, xcodeProj, ref hasMobFramework, xcodeModel);
+            AddStaticLibrary(pathModel.filePath, targetPath, xcodeFrameworkTargetGuid, pathModel, xcodeProj);
+            AddHeader(pathModel.filePath, targetPath, xcodeFrameworkTargetGuid, pathModel, xcodeProj);
+            AddBundle(pathModel.filePath, targetPath, xcodeTargetGuid, pathModel, xcodeProj);
+            AddOtherFile(pathModel.filePath, targetPath, xcodeTargetGuid, pathModel, xcodeProj, xcodeModel.fileFlags);
+        }
+#if UNITY_2018_1_OR_NEWER
+        
+#else
+        AddCapability(xcodeModel, xcodeProj, xcodeTargetGuid, targetPath);
+#endif
+        //加入系统Framework
+        AddSysFrameworks(xcodeModel, xcodeProj, xcodeFrameworkTargetGuid, targetPath);
+        //加入 xcodeModel.frameworks 中指定的 framework
+        AddXcodeModelFrameworks(xcodeModel, xcodeProj, xcodeFrameworkTargetGuid, targetPath);
+        xcodeProj.WriteToFile(xcodeProjPath);
+#if UNITY_2018_1_OR_NEWER
+        AddCapability(xcodeModel, xcodeProj, xcodeTargetGuid, targetPath);
+#endif
+
+    }
+
+    private static void initMobAppKeyInfo()
+    {
+        var files = System.IO.Directory.GetFiles(Application.dataPath, "MOB.keypds", System.IO.SearchOption.AllDirectories);
+        string filePath = files[0];
+        FileInfo projectFileInfo = new FileInfo(filePath);
+        if (projectFileInfo.Exists)
+        {
+            StreamReader sReader = projectFileInfo.OpenText();
+            string contents = sReader.ReadToEnd();
+            sReader.Close();
+            sReader.Dispose();
+            Hashtable datastore = (Hashtable)MiniJSON.jsonDecode(contents);
+            string appKey = (string)datastore["MobAppKey"];
+            //string appSecret = (string)datastore["MobAppSecret"];
+            MobAppKey = appKey;
+
+        }
+        else
+        {
+            Debug.LogWarning("MOB.keypds no find");
+        }
+    }
+
+    //添加系统Framework
+    private static void AddSysFrameworks(MOBXCodeEditorModel xcodeModel, PBXProject xcodeProj, string xcodeTargetGuid, string xcodeTargetPath)
+    {
+        foreach (string sysFramework in xcodeModel.sysFrameworks)
+        {
+            xcodeProj.AddFrameworkToProject(xcodeTargetGuid, sysFramework, false);
+        }
+    }
+
+    //添加 xcodeModel.frameworks 中指定的 framework shareSDK子平台的framework
+    private static void AddXcodeModelFrameworks(MOBXCodeEditorModel xcodeModel, PBXProject xcodeProj, string xcodeTargetGuid, string xcodeTargetPath)
+    {
+        foreach (MOBPathModel pathModel in xcodeModel.frameworks)
+        {
+            if (pathModel.filePath.Contains(".framework") && !pathModel.filePath.Contains("MOBFoundation.framework"))
+            {
+                string frameworkPath = pathModel.filePath.Replace(pathModel.rootPath, "");
+
+
+                string savePath = xcodeTargetPath + frameworkPath;
+                int tempIndex = frameworkPath.LastIndexOf("\\");
+                if (tempIndex == -1)
+                {
+                    tempIndex = frameworkPath.LastIndexOf("/");
+                }
+                string saveFrameworkPath = frameworkPath.Substring(0, tempIndex);
+                //将 framework copy到指定目录
+                DirectoryInfo frameworkInfo = new DirectoryInfo(pathModel.filePath);
+                DirectoryInfo saveFrameworkInfo = new DirectoryInfo(savePath);
+                CopyAll(frameworkInfo, saveFrameworkInfo);
+                //将 framework 加入 proj中
+#if UNITY_2017_1_OR_NEWER
+                xcodeProj.AddFileToBuildSection(xcodeTargetGuid, xcodeProj.AddFrameworksBuildPhase(xcodeTargetGuid), xcodeProj.AddFile(frameworkPath.Substring(1), "MOB" + frameworkPath, PBXSourceTree.Absolute));
+#else
+                xcodeProj.AddFileToBuild(xcodeTargetGuid, xcodeProj.AddFile(frameworkPath.Substring(1), "MOB" + frameworkPath, PBXSourceTree.Absolute));
+#endif
+                //将 build setting 设置
+                xcodeProj.AddBuildProperty(xcodeTargetGuid, "FRAMEWORK_SEARCH_PATHS", "$(SRCROOT)" + saveFrameworkPath.Replace("\\", "/"));
+            }
+            else
+            {
+                Debug.LogWarning(pathModel.filePath + " no framework");
+            }
+        }
+    }
+
+    //添加 BuildSettings
+    private static void AddBuildSettings(MOBXCodeEditorModel xcodeModel, PBXProject xcodeProj, string xcodeTargetGuid)
+    {
+        Hashtable buildSettings = xcodeModel.buildSettings;
+        foreach (string key in buildSettings.Keys)
+        {
+            ArrayList settings = (ArrayList)buildSettings[key];
+            foreach (string setStr in settings)
+            {
+                xcodeProj.AddBuildProperty(xcodeTargetGuid, key, setStr);
+            }
+        }
+    }
+    //添加其他资源
+    private static void AddOtherFile(string secondFilePath, string xcodeTargetPath, string xcodeTargetGuid, MOBPathModel pathModel, PBXProject xcodeProj, Hashtable fileFlags)
+    {
+        string[] secondDirectories = Directory.GetFiles(secondFilePath, "*", SearchOption.AllDirectories);
+        foreach (string lastFilePath in secondDirectories)
+        {
+            if ((secondFilePath.EndsWith("SDK/ShareSDK") || secondFilePath.EndsWith("SDK\\ShareSDK")) && (lastFilePath.Contains("Support/PlatformSDK") || lastFilePath.Contains("Support\\PlatformSDK")))
+            {
+                continue;
+            }
+            //			Debug.LogWarning("lastFilePath:" + lastFilePath);
+            if (!lastFilePath.Contains(".framework") &&
+                !lastFilePath.Contains(".a") &&
+                !lastFilePath.Contains(".h") &&
+                !lastFilePath.Contains(".bundle") &&
+                !lastFilePath.Contains(".DS_Store") &&
+                !lastFilePath.Contains(".meta"))
+            {
+                string otherFilePath = lastFilePath.Replace(pathModel.rootPath, "");
+
+
+                int index = otherFilePath.LastIndexOf("\\");
+                int fileNameIndex = 2;
+                if (index == -1)
+                {
+                    fileNameIndex = 1;
+                    index = otherFilePath.LastIndexOf("/");
+                }
+                //项目目录
+                string saveOtherFilePath = otherFilePath.Substring(0, index);
+                string fileName = otherFilePath.Substring(index + fileNameIndex);
+                //存放的本地目录
+                string saveDirectory = xcodeTargetPath + saveOtherFilePath;
+                if (!Directory.Exists(saveDirectory))
+                {
+                    Directory.CreateDirectory(saveDirectory);
+                }
+                //将其他文件拷贝到指定目录
+                FileInfo fileInfo = new FileInfo(lastFilePath);
+                string savePath = xcodeTargetPath + otherFilePath;
+                fileInfo.CopyTo(savePath, true);
+                //将.a 加入 proj中
+
+                if (fileFlags.ContainsKey(fileName))
+                {
+                    string flag = (string)fileFlags[fileName];
+                    //Debug.Log(flag);
+                    xcodeProj.AddFileToBuildWithFlags(xcodeTargetGuid, xcodeProj.AddFile(otherFilePath.Substring(1), "MOB" + otherFilePath, PBXSourceTree.Absolute), flag);
+                }
+                else
+                {
+#if UNITY_2017_1_OR_NEWER
+                    xcodeProj.AddFileToBuildSection(xcodeTargetGuid, xcodeProj.AddFrameworksBuildPhase(xcodeTargetGuid), xcodeProj.AddFile(otherFilePath.Substring(1), "MOB" + otherFilePath, PBXSourceTree.Absolute));
+
+#else
+                    xcodeProj.AddFileToBuild(xcodeTargetGuid, xcodeProj.AddFile(otherFilePath.Substring(1), "MOB" + otherFilePath, PBXSourceTree.Absolute));
+#endif
+                }
+            }
+        }
+    }
+    //添加 .h文件
+    private static void AddHeader(string secondFilePath, string xcodeTargetPath, string xcodeTargetGuid, MOBPathModel pathModel, PBXProject xcodeProj)
+    {
+        string[] secondDirectories = Directory.GetFiles(secondFilePath, "*.h", SearchOption.AllDirectories);
+        ArrayList savePathArray = new ArrayList();
+        foreach (string lastFilePath in secondDirectories)
+        {
+            if ((secondFilePath.EndsWith("SDK/ShareSDK") || secondFilePath.EndsWith("SDK\\ShareSDK")) && (lastFilePath.Contains("Support/PlatformSDK") || lastFilePath.Contains("Support\\PlatformSDK")))
+            {
+                continue;
+            }
+            if (!lastFilePath.Contains(".framework"))
+            {
+                string headerPath = lastFilePath.Replace(pathModel.rootPath, "");
+
+                int index = headerPath.LastIndexOf("\\");
+                if (index == -1)
+                {
+                    index = headerPath.LastIndexOf("/");
+                }
+                //项目目录
+                string saveHeaderPath = headerPath.Substring(0, index);
+                //存放的本地目录
+                string saveDirectory = xcodeTargetPath + saveHeaderPath;
+                if (!Directory.Exists(saveDirectory))
+                {
+                    Directory.CreateDirectory(saveDirectory);
+                }
+                //将.h copy到指定目录
+                FileInfo fileInfo = new FileInfo(lastFilePath);
+                string savePath = xcodeTargetPath + headerPath;
+                fileInfo.CopyTo(savePath, true);
+                //将.h 加入 proj中
+#if UNITY_2017_1_OR_NEWER
+                xcodeProj.AddFileToBuildSection(xcodeTargetGuid, xcodeProj.AddResourcesBuildPhase(xcodeTargetGuid),xcodeProj.AddFile(headerPath.Substring(1), "MOB" + headerPath, PBXSourceTree.Absolute));
+#else
+                xcodeProj.AddFileToBuild(xcodeTargetGuid,xcodeProj.AddFile(headerPath.Substring(1), "MOB" + headerPath, PBXSourceTree.Absolute));
+#endif
+                if (!savePathArray.Contains(saveHeaderPath))
+                {
+                    savePathArray.Add(saveHeaderPath);
+                    //将 build setting 设置
+                    xcodeProj.AddBuildProperty(xcodeTargetGuid, "HEADER_SEARCH_PATHS", "$(SRCROOT)" + saveHeaderPath.Replace("\\", "/"));
+                }
+            }
+        }
+    }
+
+    //添加 .a文件
+    private static void AddStaticLibrary(string secondFilePath, string xcodeTargetPath, string xcodeTargetGuid, MOBPathModel pathModel, PBXProject xcodeProj)
+    {
+        //		SearchOption searchOption;
+        //		if (secondFilePath.Contains ("/ShareSDK/")) //shareSDK
+        //		{
+        //			searchOption = SearchOption.TopDirectoryOnly;
+        //		} 
+        //		else 
+        //		{
+        //			searchOption = SearchOption.AllDirectories;
+        //		}
+        string[] secondDirectories = Directory.GetFiles(secondFilePath, "*.a", SearchOption.AllDirectories);
+        foreach (string lastFilePath in secondDirectories)
+        {
+            if ((secondFilePath.EndsWith("SDK/ShareSDK") || secondFilePath.EndsWith("SDK\\ShareSDK")) && (lastFilePath.Contains("Support/PlatformSDK") || lastFilePath.Contains("Support\\PlatformSDK")))
+            {
+                continue;
+            }
+            string staticLibraryPath = lastFilePath.Replace(pathModel.rootPath, "");
+
+
+            int index = staticLibraryPath.LastIndexOf("\\");
+            if (index == -1)
+            {
+                index = staticLibraryPath.LastIndexOf("/");
+            }
+
+            //项目目录
+            string saveStaticLibraryPath = staticLibraryPath.Substring(0, index);
+            //存放的本地目录
+            string saveDirectory = xcodeTargetPath + saveStaticLibraryPath;
+            if (!Directory.Exists(saveDirectory))
+            {
+                Directory.CreateDirectory(saveDirectory);
+            }
+            //将.a copy到指定目录
+            FileInfo fileInfo = new FileInfo(lastFilePath);
+            string savePath = xcodeTargetPath + staticLibraryPath;
+            fileInfo.CopyTo(savePath, true);
+            //将.a 加入 proj中
+#if UNITY_2017_1_OR_NEWER
+            xcodeProj.AddFileToBuildSection(xcodeTargetGuid, xcodeProj.AddFrameworksBuildPhase(xcodeTargetGuid), xcodeProj.AddFile(staticLibraryPath.Substring(1), "MOB" + staticLibraryPath, PBXSourceTree.Absolute));
+#else
+            xcodeProj.AddFileToBuild(xcodeTargetGuid, xcodeProj.AddFile(staticLibraryPath.Substring(1), "MOB" + staticLibraryPath, PBXSourceTree.Absolute));
+#endif
+            //将 build setting 设置
+            xcodeProj.AddBuildProperty(xcodeTargetGuid, "LIBRARY_SEARCH_PATHS", "$(SRCROOT)" + saveStaticLibraryPath.Replace("\\", "/"));
+        }
+    }
+
+    //添加 bundle
+    private static void AddBundle(string secondFilePath, string xcodeTargetPath, string xcodeTargetGuid, MOBPathModel pathModel, PBXProject xcodeProj)
+    {
+        SearchOption searchOption;
+        if (secondFilePath.Contains("/ShareSDK/") || secondFilePath.Contains("\\ShareSDK\\") || secondFilePath.Contains("/ShareSDK\\")) //shareSDK
+        {
+            searchOption = SearchOption.TopDirectoryOnly;
+        }
+        else
+        {
+            searchOption = SearchOption.AllDirectories;
+        }
+        string[] secondDirectories = Directory.GetDirectories(secondFilePath, "*.bundle", searchOption);
+        foreach (string lastFilePath in secondDirectories)
+        {
+            if ((secondFilePath.EndsWith("SDK/ShareSDK") || secondFilePath.EndsWith("SDK\\ShareSDK")) && (lastFilePath.Contains("Support/PlatformSDK") || lastFilePath.Contains("Support\\PlatformSDK")))
+            {
+                continue;
+            }
+            //			Debug.Log("lastFilePath" + lastFilePath);
+            string bundlePath = lastFilePath.Replace(pathModel.rootPath, "");
+            //			Debug.Log("bundlePath" + bundlePath);
+            string savePath = xcodeTargetPath + bundlePath;
+            //将 framework copy到指定目录
+            DirectoryInfo bundleInfo = new DirectoryInfo(lastFilePath);
+            DirectoryInfo saveBundleInfo = new DirectoryInfo(savePath);
+            
+            CopyAll(bundleInfo, saveBundleInfo);
+            //将 framework 加入 proj中
+#if UNITY_2017_1_OR_NEWER
+            xcodeProj.AddFileToBuildSection(xcodeTargetGuid, xcodeProj.AddResourcesBuildPhase(xcodeTargetGuid), xcodeProj.AddFile(bundlePath.Substring(1), "MOB" + bundlePath, PBXSourceTree.Absolute));
+#else
+            xcodeProj.AddFileToBuild(xcodeTargetGuid, xcodeProj.AddFile(bundlePath.Substring(1), "MOB" + bundlePath, PBXSourceTree.Absolute));
+#endif
+        }
+    }
+
+    //添加 Framework
+    private static void AddFramework(string secondFilePath, string xcodeTargetPath, string xcodeTargetGuid, string xcodeFrameworkTargetGuid, MOBPathModel pathModel, PBXProject xcodeProj, ref bool hasMobFramework, MOBXCodeEditorModel editModel)
+    {
+
+        SearchOption searchOption;
+        if (secondFilePath.Contains("/ShareSDK/") || secondFilePath.Contains("\\ShareSDK\\") || secondFilePath.Contains("/ShareSDK\\")) //shareSDK
+        {
+            searchOption = SearchOption.TopDirectoryOnly;
+        }
+        else
+        {
+            searchOption = SearchOption.AllDirectories;
+        }
+        string[] secondDirectories = Directory.GetDirectories(secondFilePath, "*.framework", searchOption);
+        foreach (string lastFilePath in secondDirectories)
+        {
+            //			Debug.Log("lastFilePath" + lastFilePath);
+
+            int index = lastFilePath.LastIndexOf("\\");
+            int fileNameIndex = 2;
+            if (index == -1)
+            {
+                fileNameIndex = 1;
+                index = lastFilePath.LastIndexOf("/");
+            }
+            //framework 名称
+            string frameworkName = lastFilePath.Substring(index + fileNameIndex);
+            //			Debug.Log("frameworkName" + frameworkName);
+            bool isMOBFoundation = (frameworkName == "MOBFoundation.framework");
+            if (!isMOBFoundation || (isMOBFoundation && !hasMobFramework))
+            {
+                if (isMOBFoundation && !hasMobFramework)
+                {
+                    //					Debug.Log("isMOBFoundation " + lastFilePath);
+                    hasMobFramework = true;
+                }
+                string frameworkPath = lastFilePath.Replace(pathModel.rootPath, "");
+                //			Debug.Log("frameworkPath" + frameworkPath);
+                string savePath = xcodeTargetPath + frameworkPath;
+                int tempIndex = frameworkPath.LastIndexOf("\\");
+                if (tempIndex == -1)
+                {
+                    tempIndex = frameworkPath.LastIndexOf("/");
+                }
+
+                string saveFrameworkPath = frameworkPath.Substring(0, tempIndex);
+                string targetGuid = xcodeFrameworkTargetGuid;
+                //将 framework copy到指定目录AddURLSchemes
+                DirectoryInfo frameworkInfo = new DirectoryInfo(lastFilePath);
+                DirectoryInfo saveFrameworkInfo = new DirectoryInfo(savePath);
+                CopyAll(frameworkInfo, saveFrameworkInfo);
+                //将 framework 加入 proj中
+
+
+
+                if (frameworkName == "ShareSDKLink.framework" && !editModel.isOpenRestoreScene)
+                {
+                    continue;
+                }
+
+                string fileGuid = (string)xcodeProj.AddFile(frameworkPath.Substring(1), "MOB" + frameworkPath, PBXSourceTree.Absolute);
+
+
+                string[] dynamicframework = { "OasisSDK.framework", "SCSDKCreativeKit.framework", "SCSDKLoginKit.framework", "SCSDKCoreKit.framework" };
+                int dynamicIndex = Array.IndexOf(dynamicframework, frameworkName);
+                
+                if (dynamicIndex >= 0)
+                {
+                    
+                    targetGuid = xcodeTargetGuid;
+#if UNITY_2017_1_OR_NEWER
+                    xcodeProj.AddFileToBuildSection(targetGuid, xcodeProj.AddFrameworksBuildPhase(targetGuid), fileGuid);
+#else
+                    xcodeProj.AddFileToBuild(targetGuid, fileGuid);
+#endif
+#if UNITY_2017_2_OR_NEWER
+
+                    xcodeProj.AddFileToEmbedFrameworks(targetGuid, fileGuid);
+#elif UNITY_2019_3_OR_NEWER
+                    xcodeProj.AddFileToEmbedFrameworks(targetGuid, fileGuid, targetGuid);
+#endif
+                }
+                else
+                {
+#if UNITY_2017_1_OR_NEWER
+                    xcodeProj.AddFileToBuildSection(targetGuid, xcodeProj.AddFrameworksBuildPhase(targetGuid), fileGuid);
+#else
+                    xcodeProj.AddFileToBuild(targetGuid, fileGuid);
+#endif
+                }
+
+                //将 build setting 设置
+                xcodeProj.AddBuildProperty(targetGuid, "FRAMEWORK_SEARCH_PATHS", "$(SRCROOT)" + saveFrameworkPath.Replace("\\", "/"));
+                
+             
+            }
+        }
+    }
+
+    //拷贝目录下的所有文件并剔除.meta
+    private static void CopyAll(DirectoryInfo source, DirectoryInfo target)
+    {
+        if (source.FullName.ToLower() == target.FullName.ToLower())
+        {
+            return;
+        }
+        // Check if the target directory exists, if not, creatAddURLSchemesAddURLSchemese it.
+        if (!Directory.Exists(target.FullName))
+        {
+            Directory.CreateDirectory(target.FullName);
+        }
+        // Copy each file into it's new directory.
+        foreach (FileInfo fi in source.GetFiles())
+        {
+
+            if (!fi.Name.EndsWith(".meta"))
+            {
+                string name = fi.Name;
+                if (name.Contains(".mobjs"))
+                {
+                    name = name.Replace(".mobjs", ".js");
+                }
+                //Debug.Log(name);
+                if ((source.ToString().Contains("ShareSDK.bundle/ScriptCore/platforms") || source.ToString().Contains("ShareSDK.bundle\\ScriptCore\\platforms") || source.ToString().Contains("ShareSDK.bundle/ScriptCore\\platforms")) && !platformJsList.Contains(name))
+                {
+
+                }
+                else
+                {
+                    fi.CopyTo(Path.Combine(target.ToString(), name), true);
+                }
+
+
+            }
+        }
+        // Copy each subdirectory using recursion.
+        foreach (DirectoryInfo diSourceSubDir in source.GetDirectories())
+        {
+            DirectoryInfo nextTargetSubDir =
+                target.CreateSubdirectory(diSourceSubDir.Name);
+            CopyAll(diSourceSubDir, nextTargetSubDir);
+        }
+    }
+
+    //在info.plist中添加 MOBAppkey MOBAppSecret
+    private static void AddAPPKey(PlistElementDict plistElements)
+    {
+        var files = System.IO.Directory.GetFiles(Application.dataPath, "MOB.keypds", System.IO.SearchOption.AllDirectories);
+        string filePath = files[0];
+        FileInfo projectFileInfo = new FileInfo(filePath);
+        if (projectFileInfo.Exists)
+        {
+            StreamReader sReader = projectFileInfo.OpenText();
+            string contents = sReader.ReadToEnd();
+            sReader.Close();
+            sReader.Dispose();
+            Hashtable datastore = (Hashtable)MiniJSON.jsonDecode(contents);
+            string appKey = (string)datastore["MobAppKey"];
+            string appSecret = (string)datastore["MobAppSecret"];
+            string mobNetLater = (string)datastore["MOBNetLater"];
+            string mobTwitterVer = (string)datastore["MOBTwitterVer"];
+
+            plistElements.SetString("MOBAppkey", appKey);
+            plistElements.SetString("MOBAppSecret", appSecret);
+            if(mobNetLater == null || mobNetLater == ""){
+                //如果为空不作任何操作
+            }else{
+                plistElements.SetString("MOBNetLater", mobNetLater);
+            }
+
+            if(mobTwitterVer == null || mobTwitterVer == ""){
+                //如果为空不作任何操作
+            }else{
+                plistElements.SetString("MOBTwitterVer", mobTwitterVer);
+            }
+        }
+        else
+        {
+            Debug.LogWarning("MOB.keypds no find");
+        }
+    }
+
+    //在info.plist中添加 必要的权限设置
+    private static void AddPermissions(MOBXCodeEditorModel xcodeModel, PlistElementDict plistElements)
+    {
+        Hashtable permissions = xcodeModel.permissions;
+        foreach (string key in permissions.Keys)
+        {
+            string value = (string)permissions[key];
+            plistElements.SetString(key, value);
+        }
+    }
+
+    //在info.plist中添加 白名单
+    private static void AddLSApplicationQueriesSchemes(MOBXCodeEditorModel xcodeModel, PlistElementDict plistElements)
+    {
+        ArrayList LSApplicationQueriesSchemes = xcodeModel.LSApplicationQueriesSchemes;
+        PlistElementArray elementArray = plistElements.CreateArray("LSApplicationQueriesSchemes");
+        foreach (string str in LSApplicationQueriesSchemes)
+        {
+            elementArray.AddString(str);
+        }
+    }
+
+    //在info.plist中添加 URLSchemes
+    private static void AddURLSchemes(MOBXCodeEditorModel xcodeModel, PlistElementDict plistElements)
+    {
+        ArrayList URLSchemes = xcodeModel.URLSchemes;
+        PlistElementArray elementArray = plistElements.CreateArray("CFBundleURLTypes");
+        foreach (Hashtable scheme in URLSchemes)
+        {
+            PlistElementDict dict = elementArray.AddDict();
+            dict.SetString("CFBundleURLName", (string)scheme["CFBundleURLName"]);
+            PlistElementArray urlArray = dict.CreateArray("CFBundleURLSchemes");
+            ArrayList schemes = (ArrayList)scheme["CFBundleURLSchemes"];
+            foreach (string schemeStr in schemes)
+            {
+                urlArray.AddString(schemeStr);
+            }
+        }
+    }
+
+    //在info.plist中添加 infoPlistSet
+    private static void AddInfoPlistSet(MOBXCodeEditorModel xcodeModel, PlistElementDict plistElements)
+    {
+        Hashtable infoPlistSets = xcodeModel.infoPlistSet;
+        foreach (string key in infoPlistSets.Keys)
+        {
+            var value = infoPlistSets[key];
+            if (value.GetType().Equals(typeof(string)))
+            {
+                plistElements.SetString(key, (string)value);
+            }
+            else if (value.GetType().Equals(typeof(Hashtable)))
+            {
+                Hashtable temp = (Hashtable)value;
+                PlistElementDict dict = plistElements.CreateDict(key);
+                foreach (string tempKey in temp.Keys)
+                {
+                    //暂时只支持1层dict
+                    dict.SetString(tempKey, (string)temp[tempKey]);
+                }
+            }else if (value.GetType().Equals(typeof(ArrayList)))
+            {
+                ArrayList temp = (ArrayList)value;
+                PlistElementArray urlArray = plistElements.CreateArray(key);
+
+                foreach (string str in temp)
+                {
+                    urlArray.AddString(str);
+                }				
+            }
+        }
+    }
+
+    private static void AddCapability(MOBXCodeEditorModel xcodeModel, PBXProject xcodeProj, string xcodeTargetGuid, string xcodeTargetPath)
+    {
+
+        string projectPath = PBXProject.GetPBXProjectPath(xcodeTargetPath);
+
+
+        if (xcodeModel.isOpenRestoreScene || xcodeModel.isHaveApple || xcodeModel.associatedDomains.Count > 0)
+        {
+            string entitlementsPath = xcodeModel.entitlementsPath;
+            if (entitlementsPath == null || entitlementsPath == "" || !xcodeModel.entitlementsPath.Contains(".entitlements"))
+            {
+
+                string[] s = UnityEditor.PlayerSettings.applicationIdentifier.Split('.');
+                string productname = s[s.Length - 1];
+                entitlementsPath = "Unity-iPhone/" + productname + ".entitlements";
+            }
+#if UNITY_2018_1_OR_NEWER
+#if UNITY_2019_3_OR_NEWER
+            ProjectCapabilityManager capManager = new ProjectCapabilityManager(projectPath, entitlementsPath, null, xcodeTargetGuid);
+
+#else
+            ProjectCapabilityManager capManager = new ProjectCapabilityManager(projectPath , entitlementsPath, "Unity-iPhone");
+
+#endif
+            
+            
+            if (xcodeModel.associatedDomains.Count > 0 || xcodeModel.isHaveApple)
+            {
+
+                string[] domains = new string[xcodeModel.associatedDomains.Count];
+                int index = 0;
+                foreach (string domainStr in xcodeModel.associatedDomains)
+                {
+                    Debug.Log("AddCapabilityAssociatedDomains:" + domainStr);
+                    domains[index] = domainStr;
+                    index++;
+                }
+                //Debug.Log("xcodeTargetGuid:" + xcodeTargetGuid);
+                //Debug.Log("xcodeTargetPath:" + xcodeTargetPath);
+                //Debug.Log("projectPath:" + projectPath);
+                //Debug.Log("GetUnityTargetName:" + PBXProject.GetUnityTargetName());
+                //Debug.Log("domainStr:" + MiniJSON.jsonEncode(domains));
+                if (capManager.GetType().GetMethod("AddAssociatedDomains") != null)
+                {
+                    capManager.GetType().GetMethod("AddAssociatedDomains").Invoke(capManager, new object[] { domains });
+                }
+
+                
+                //Debug.Log("bundleIdentifier:" + UnityEditor.PlayerSettings.applicationIdentifier);
+                //Debug.Log("productName:" + UnityEditor.PlayerSettings.productName);
+                if (xcodeModel.isHaveApple && capManager.GetType().GetMethod("AddSignInWithApple") != null)
+                {
+                    capManager.GetType().GetMethod("AddSignInWithApple").Invoke(capManager, null);
+                }
+
+                //推送
+                //capManager.AddPushNotifications(true);
+                //内购
+                //capManager.AddInAppPurchase();
+                capManager.WriteToFile();
+
+                
+                xcodeProj.AddCapability(xcodeTargetGuid, PBXCapabilityType.AssociatedDomains, xcodeTargetPath + "/" + entitlementsPath, true);
+            }
+#else
+
+            var entitlementFile = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><!DOCTYPE plist PUBLIC \" -//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\"><plist version = \"1.0\"><dict>";
+
+            if (xcodeModel.associatedDomains.Count > 0 || xcodeModel.isHaveApple)
+            {
+
+                string[] domains = new string[xcodeModel.associatedDomains.Count];
+                int index = 0;
+                foreach (string domainStr in xcodeModel.associatedDomains)
+                {
+                    Debug.Log("AddCapabilityAssociatedDomains:" + domainStr);
+                    domains[index] = "<string>" + domainStr + "</string>";
+                    index++;
+                }
+                var associatedDomainsString = "";
+                if (domains.Length > 0) {
+                    associatedDomainsString = "<key>com.apple.developer.associated-domains</key><array>" + string.Join("", domains) + "</array>";
+                }
+                var appleString = "";
+                if (xcodeModel.isHaveApple) {
+                    appleString = "<key>com.apple.developer.applesignin</key><array><string> Default </string></array>";
+                }
+                entitlementFile = entitlementFile + associatedDomainsString + appleString + "</dict></plist>";
+
+            }
+            Debug.LogWarning(entitlementFile);
+            Debug.LogWarning(xcodeTargetPath + "/" + entitlementsPath);
+            Debug.LogWarning(xcodeTargetPath);
+            StreamWriter sWriter = new StreamWriter(xcodeTargetPath + "/" + entitlementsPath);
+            sWriter.WriteLine(entitlementFile);
+            sWriter.Close();
+            sWriter.Dispose();
+            xcodeProj.AddBuildProperty(xcodeTargetGuid, "CODE_SIGN_ENTITLEMENTS", entitlementsPath);
+            string fileGuid = (string)xcodeProj.AddFile(xcodeTargetPath + "/" + entitlementsPath, entitlementsPath, PBXSourceTree.Absolute);
+            xcodeProj.AddFileToBuild(xcodeTargetGuid, fileGuid);            
+#endif
+        }
+    }
+
+
+#endif
+}

+ 1 - 1
GameClient/Assets/Game/Launcher/ReYunSDK/MiniJSON.cs.meta → GameClient/Assets/Plugins/iOS/MOBTool/iOS/MOBAutoPackage/Editor/MOBPostProcessBuild.cs.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 5408870acbae940c3a9072cac7a5cdd8
+guid: 2a099b6b3a41b4a89bd0f7a47327d7df
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2

+ 494 - 0
GameClient/Assets/Plugins/iOS/MOBTool/iOS/MOBAutoPackage/Editor/MOBXCodeEditorModel.cs

@@ -0,0 +1,494 @@
+using UnityEngine;
+using System.Collections;
+using System;
+using System.IO;
+
+namespace cn.mob.unity3d.sdkporter
+{
+	public class MOBXCodeEditorModel
+	{
+        public string MobAppKey;
+
+        public Hashtable permissions;
+		public ArrayList folders;
+		ArrayList comparisonFolders;
+		public Hashtable buildSettings;
+		public ArrayList frameworks;
+		public ArrayList LSApplicationQueriesSchemes;
+		public Hashtable infoPlistSet;
+		ArrayList comparisonFrameworks;
+		public ArrayList sysFrameworks;
+		public Hashtable fileFlags;
+		Hashtable platformConfList;
+        public ArrayList platformJsList;
+
+		public ArrayList URLSchemes;
+		ArrayList comparisonURLSchemes;
+
+        public bool isOpenRestoreScene;
+        public ArrayList associatedDomains;
+        public bool isHaveApple;
+        public string entitlementsPath;
+
+        public MOBXCodeEditorModel ()
+		{
+            MobAppKey = "";
+
+            infoPlistSet = new Hashtable ();
+			permissions = new Hashtable ();
+			folders = new ArrayList ();
+			comparisonFolders = new ArrayList ();
+			buildSettings = new Hashtable ();
+			frameworks = new ArrayList ();
+			comparisonFrameworks = new ArrayList ();
+			LSApplicationQueriesSchemes = new ArrayList ();
+			URLSchemes = new ArrayList ();
+			comparisonURLSchemes = new ArrayList ();
+			sysFrameworks = new ArrayList ();
+			fileFlags = new Hashtable ();
+			SetPlatformConfList ();
+
+            platformJsList = new ArrayList();
+
+            isOpenRestoreScene = false;
+            associatedDomains = new ArrayList();
+            entitlementsPath = "";
+        }
+
+		//for shareSDK
+		private void SetPlatformConfList()
+		{
+			string[] files = Directory.GetFiles(Application.dataPath , "All.pltpds", SearchOption.AllDirectories);
+			if(files.Length > 0)
+			{
+				string filePath = files[0];
+				FileInfo fileInfo = new FileInfo( filePath );
+				if (fileInfo.Exists) 
+				{
+					StreamReader sReader = fileInfo.OpenText ();
+					string contents = sReader.ReadToEnd();
+					sReader.Close();
+					sReader.Dispose();
+					platformConfList = (Hashtable)MiniJSON.jsonDecode( contents );
+				} 
+				else 
+				{
+					platformConfList = new Hashtable();
+				}
+			}
+		}
+
+		public void LoadMobpds()
+		{
+			string[] files = Directory.GetFiles(Application.dataPath , "*.mobpds", SearchOption.AllDirectories);
+			foreach( string filePath in files ) 
+			{
+				//读取配置
+				ReadMobpds (filePath);
+			}
+		}
+		private void ReadMobpds(string filePath)
+		{
+			ReadMobpds (filePath,"",null,null);
+		}
+		//读取配置debug.logdebug.log
+		private void ReadMobpds(string filePath,string appkey,string savefilePath, Hashtable deviceInfo)
+		{
+			FileInfo fileInfo = new FileInfo( filePath );
+            
+			if(fileInfo.Exists)
+			{
+				StreamReader sReader = fileInfo.OpenText();
+				string contents = sReader.ReadToEnd();
+				sReader.Close();
+				sReader.Dispose();
+				Hashtable datastore = (Hashtable)MiniJSON.jsonDecode( contents );
+                //savefilePath
+
+                
+                int index = filePath.LastIndexOf("\\");
+                if (index == -1) {
+                    index = filePath.LastIndexOf("/");
+                }
+                if (savefilePath == null)
+				{
+					savefilePath = filePath;
+					savefilePath = savefilePath.Substring (0,index);
+
+				}
+                
+                
+                //permissionsreplaceAppKeydebug.logdebug.log
+                AddPrmissions (datastore);
+				//LSApplicationQueriesSchemes
+				AddLSApplicationQueriesSchemes (datastore,appkey,deviceInfo);
+				//folders
+				AddFolders (datastore,savefilePath);
+				//buildSettings
+				AddBuildSettings (datastore);
+				//系统库添加
+				AddSysFrameworks(datastore);
+				//添加非系统 Framework 配置需要设置指定参数
+				AddFrameworks (datastore,savefilePath);
+				//添加 URLSchemes
+				AddURLSchemes(datastore,appkey,deviceInfo);
+				//添加 InfoPlistSet
+				AddInfoPlistSet(datastore,appkey, deviceInfo);
+				//子平台
+				AddPlatformConf(datastore,savefilePath);
+				//添加 fileFlags 一些需要特殊设置编译标签的文件 如ARC下MRC
+				AddFileFlags(datastore);
+
+                //添加场景还原
+                //AddRestoreScene(datastore, savefilePath);
+
+                //添加associatedDomains
+                AddAssociatedDomains(datastore, savefilePath);
+            }
+        }
+
+		//文件路径debug.log
+		private void AddFileFlags(Hashtable dataSource)
+		{
+			string dataKey = "fileFlags";
+			if(dataSource.ContainsKey(dataKey))
+			{
+				Hashtable tempArrayList = (Hashtable)dataSource[dataKey];
+				foreach (string fileName in tempArrayList.Keys)
+				{
+					if(!fileFlags.ContainsKey(fileName))
+					{
+						string flag = (string)tempArrayList[fileName];
+						fileFlags.Add (fileName, flag);
+					}
+				}
+			}
+		}
+
+		//文件路径debug.log
+		private void AddSysFrameworks(Hashtable dataSource)
+		{
+			string dataKey = "sysFramework";
+			if(dataSource.ContainsKey(dataKey))
+			{
+				ArrayList tempArrayList = (ArrayList)dataSource[dataKey];
+				foreach (string value in tempArrayList)
+				{
+					if(!sysFrameworks.Contains(value))
+					{
+						sysFrameworks.Add (value);
+					}
+				}
+			}
+		}
+
+		//文件路径debug.log
+		private void AddFrameworks(Hashtable dataSource,string path)
+		{
+			string dataKey = "framework";
+			if(dataSource.ContainsKey(dataKey))
+			{
+				ArrayList tempArrayList = (ArrayList)dataSource[dataKey];
+				foreach (string value in tempArrayList)
+				{
+					string filePath = path + value;
+					if(!comparisonFrameworks.Contains(filePath))
+					{
+						comparisonFrameworks.Add (filePath);
+						MOBPathModel pathModel = new MOBPathModel ();
+						pathModel.rootPath = path;
+						pathModel.savePath = value;
+						pathModel.filePath = filePath;
+						frameworks.Add (pathModel);
+					}
+				}
+			}
+		}
+
+		//添加 shareSDK 子平台
+		private void AddPlatformConf(Hashtable dataSource,string savefilePath)
+		{
+			string dataKey = "ShareSDKPlatforms";
+			if (dataSource.ContainsKey (dataKey)) 
+			{
+				Hashtable platforms = (Hashtable)dataSource[dataKey];
+				
+				foreach (var key in platforms.Keys) 
+				{
+					
+					//Debug.Log(key);
+					string fileName = (string)platformConfList[key];
+					platformJsList.Add(fileName + ".js");
+                    
+                    var files = System.IO.Directory.GetFiles(Application.dataPath , fileName + ".pltpds", System.IO.SearchOption.AllDirectories);
+                    
+                    if (fileName.Equals("Apple"))
+                    {
+                        isHaveApple = true;
+                      
+                    }
+					if ( files.Length > 0) 
+					{
+
+						string filePath = files [0];
+
+						string appkey = (string)platforms[key];
+
+                        Hashtable deviceInfo = (Hashtable)dataSource["ShareSDKDeviceInfo"];
+						//读取配置
+						ReadMobpds (filePath,appkey,savefilePath, (Hashtable)deviceInfo[key]);
+					}
+						
+				}
+			}
+		}
+
+		//需要补充 appkey
+		private string replaceAppKey(string dataStr ,string appkey, Hashtable datastore)
+		{
+
+			if (dataStr.Contains("{appkey}"))
+			{
+				return dataStr.Replace("{appkey}", appkey);
+			}
+			else if (dataStr.Contains("{appkey16}"))
+			{
+				int intAppkey = int.Parse(appkey);
+				string temp = Convert.ToString(intAppkey, 16);
+				while (temp.Length < 8)
+				{
+					temp = "0" + temp;
+				}
+				return dataStr.Replace("{appkey16}", temp.ToUpper());
+			}
+			else if (dataStr.Contains("{universalLink}"))
+			{
+				if (datastore != null)
+				{
+					string universalLink = (string)datastore["universalLink"];
+					if (universalLink == null)
+					{
+						universalLink = "";
+					}
+					return universalLink;
+				}
+			}
+			else if (dataStr.Contains("{redirect_uri}")) {
+				string redirect_uri = (string)datastore["redirect_uri"];
+				if (redirect_uri == null)
+				{
+					redirect_uri = "";
+                }else
+                {
+					int index = redirect_uri.IndexOf("://");
+					redirect_uri = redirect_uri.Substring(0,index);
+                }
+				return redirect_uri;
+			}
+			return dataStr;
+		}
+
+		private void AddInfoPlistSet(Hashtable dataSource,string appkey, Hashtable deviceInfo)
+		{
+			string dataKey = "infoPlistSet";
+           
+            if (dataSource.ContainsKey (dataKey)) 
+			{
+				Hashtable tempHashtable = (Hashtable)dataSource[dataKey];
+				foreach (string key in tempHashtable.Keys) 
+				{
+					
+					if(!infoPlistSet.ContainsKey(key))
+					{
+						var value = tempHashtable[key];
+						if (value.GetType ().Equals (typeof(string))) {
+							string valueStr = replaceAppKey ((string)value, appkey, deviceInfo);
+							infoPlistSet.Add (key, valueStr);
+						} else if (value.GetType ().Equals (typeof(Hashtable))) 
+						{
+							Hashtable temp = (Hashtable)value;
+							Hashtable saveHashtable = new Hashtable ();
+                            foreach (string tempKey in temp.Keys) {
+								//暂时只支持1层dict
+								string valueStr = (string)temp [tempKey];
+                                
+								valueStr = replaceAppKey (valueStr, appkey, deviceInfo);
+								saveHashtable.Add (tempKey,valueStr);
+							}
+                           
+                            infoPlistSet.Add (key, saveHashtable);
+						}
+                        else if (value.GetType().Equals(typeof(ArrayList)))
+                        {
+                            infoPlistSet.Add(key, value);
+                        }
+                    }
+				}
+			}
+		}
+
+		//添加 URLSchemes
+		private void AddURLSchemes(Hashtable dataSource,string appkey, Hashtable deviceInfo)
+		{
+			string dataKey = "URLSchemes";
+			if (dataSource.ContainsKey (dataKey)) 
+			{
+				Hashtable tempHashtable = (Hashtable)dataSource[dataKey];
+				string CFBundleURLName = (string)tempHashtable["CFBundleURLName"];
+				if(!comparisonURLSchemes.Contains(CFBundleURLName))
+				{
+					comparisonURLSchemes.Add (CFBundleURLName);
+					ArrayList urlArray = (ArrayList)tempHashtable["CFBundleURLSchemes"];
+					ArrayList formetArray = new ArrayList ();
+					foreach(string url in urlArray)
+					{
+						
+						string urlStr = replaceAppKey (url,appkey,deviceInfo);
+						formetArray.Add(urlStr);
+					}
+					tempHashtable ["CFBundleURLSchemes"] = formetArray;
+					URLSchemes.Add (tempHashtable);
+				}
+			}
+		}
+
+		//添加 LSApplicationQueriesSchemes
+		private void AddLSApplicationQueriesSchemes(Hashtable dataSource,string appkey, Hashtable deviceInfo)
+		{
+			string dataKey = "LSApplicationQueriesSchemes";
+			if(dataSource.ContainsKey(dataKey))
+			{
+				ArrayList tempArray = (ArrayList)dataSource[dataKey];
+				foreach (string str in tempArray)
+				{
+					string dataStr = replaceAppKey (str,appkey,deviceInfo);
+					if(!LSApplicationQueriesSchemes.Contains(dataStr))
+					{
+						LSApplicationQueriesSchemes.Add (dataStr);
+					}
+				}
+			}
+		}
+
+		//添加 buildSettings
+		private void AddBuildSettings(Hashtable dataSource)
+		{
+			string dataKey = "buildSettings";
+			if(dataSource.ContainsKey(dataKey))
+			{
+				Hashtable tempHashtable = (Hashtable)dataSource[dataKey];
+				foreach (string key in tempHashtable.Keys)
+				{
+					//没有的情况下
+					if (!buildSettings.ContainsKey (key)) 
+					{
+						var value = tempHashtable [key];
+						buildSettings.Add (key, value);
+					} 
+					else //已经存在的情况下进行比较添加
+					{
+						ArrayList settings = (ArrayList)tempHashtable [key];
+						ArrayList targetSettings = (ArrayList)buildSettings [key];
+						foreach (string setStr in settings)
+						{
+							if(!targetSettings.Contains(setStr))
+							{
+								targetSettings.Add (setStr);
+							}
+						}
+					}
+				}
+			}
+		}
+
+		//设置权限
+		private void AddPrmissions(Hashtable dataSource)
+		{
+			string dataKey = "permissions";
+			if(dataSource.ContainsKey(dataKey))
+			{
+				Hashtable tempHashtable = (Hashtable)dataSource[dataKey];
+				foreach (string key in tempHashtable.Keys)
+				{
+					if(!permissions.ContainsKey(key))
+					{
+						string value = (string)tempHashtable[key];
+						permissions.Add (key,value);
+					}
+				}
+			}
+		}
+		//文件路径
+		private void AddFolders(Hashtable dataSource,string path)
+		{
+			string dataKey = "folders";
+			if(dataSource.ContainsKey(dataKey))
+			{
+				ArrayList tempArrayList = (ArrayList)dataSource[dataKey];
+				foreach (string value in tempArrayList)
+				{
+					string filePath = path + value;
+//					Debug.LogWarning (filePath);
+					if(!comparisonFolders.Contains(filePath))
+					{
+						comparisonFolders.Add (filePath);
+						MOBPathModel pathModel = new MOBPathModel ();
+						pathModel.rootPath = path;
+						pathModel.savePath = value;
+						pathModel.filePath = filePath;
+						folders.Add (pathModel);
+					}
+				}
+			}
+		}
+
+        //场景还原 开关及XCode下Capabilities->AssociatedDomains
+        private void AddRestoreScene(Hashtable dataSource, string savefilePath)
+        {
+            string dataKey = "ShareSDKRestoreScene";
+            if (dataSource.ContainsKey(dataKey))
+            {
+                Hashtable restoreSceneInfo = (Hashtable)dataSource[dataKey];
+                if (restoreSceneInfo.ContainsKey("open") && int.Parse((string)restoreSceneInfo["open"]) == 1)
+                {
+                    isOpenRestoreScene = true;
+
+                    var files = System.IO.Directory.GetFiles(Application.dataPath, "restoreScene.rspds", System.IO.SearchOption.AllDirectories);
+
+                    if (files.Length > 0)
+                    {
+                        string filePath = files[0];
+
+                        string appkey = MobAppKey;
+                        //读取配置
+                        ReadMobpds(filePath, appkey, savefilePath,null);
+                    }
+
+                    if (restoreSceneInfo.ContainsKey("Capabilitites_EntitlementsPath"))
+                    {
+                        entitlementsPath = (string)restoreSceneInfo["Capabilitites_EntitlementsPath"];
+                    }
+
+                    if (restoreSceneInfo.ContainsKey("Capabilitites_AssociatedDomain"))
+                    {
+                        associatedDomains.Add((string)restoreSceneInfo["Capabilitites_AssociatedDomain"]);
+                    }
+                }
+            }
+        }
+        //XCode下Capabilities->AssociatedDomains
+        private void AddAssociatedDomains(Hashtable dataSource, string savefilePath)
+        {
+            string dataKey = "AssociatedDomains";
+            if (dataSource.ContainsKey(dataKey))
+            {
+                ArrayList tempArrayList = (ArrayList)dataSource[dataKey];
+                foreach (string value in tempArrayList)
+                {
+                    associatedDomains.Add(value);
+                }
+            }
+        }
+
+    }
+}

+ 11 - 0
GameClient/Assets/Plugins/iOS/MOBTool/iOS/MOBAutoPackage/Editor/MOBXCodeEditorModel.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 5b5abdb48968b4cafbe7911a81feb0eb
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Plugins/iOS/ShareSDK.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 7f052abdeb65341738c8f2e02536528f
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 3b74122b70d04453eaadad2c04997d30
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 95ff100e6079443f6bfea88ca2f0ddfe
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 10 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/AliSocial.pltpds

@@ -0,0 +1,10 @@
+{
+    "folders" : ["/SDK/ShareSDK/Support/PlatformSDK/APSocialSDK"],
+    "framework" : ["/SDK/ShareSDK/Support/PlatformConnector/AliSocialConnector.framework"],
+    "LSApplicationQueriesSchemes":["alipay","alipayshare"],
+    "URLSchemes" : {
+    				"CFBundleURLSchemes" : ["ap{appkey}"],
+    				"CFBundleURLName" : "alipayShare"
+    				}
+    
+}

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/AliSocial.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 4fbdad3d7c78f419ca08ece08b5b2230
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 63 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/All.pltpds

@@ -0,0 +1,63 @@
+{
+    "1":"SinaWeibo",
+    "2":"TencentWeibo",
+    "5":"DouBan",
+    "6":"QQ",
+    "7":"RenRen",
+    "8":"KaiXin",
+    "10":"Facebook",
+    "11":"Twitter",
+    "12":"Evernote",
+    "14":"GooglePlus",
+    "15":"Instagram",
+    "16":"LinkedIn",
+    "17":"Tumblr",
+    "18":"Mail",
+    "19":"SMS",
+    "20":"Print",
+    "21":"Copy",
+    "22":"WeChat",
+    "23":"WeChat",
+    "24":"QQ",
+    "25":"Instapaper",
+    "26":"Pocket",
+    "27":"YouDaoNote",
+    "30":"Pinterest",
+    "34":"Flickr",
+    "35":"Dropbox",
+    "36":"VKontakte",
+    "37":"WeChat",
+    "38":"EasyChat",
+    "39":"EasyChat",
+    "40":"EasyChat",
+    "41":"MingDao",
+    "42":"Line",
+    "43":"WhatsApp",
+    "44":"KaKao",
+    "45":"KaKao",
+    "46":"FacebookMessenger",
+    "47":"Telegram",
+    "50":"AliSocial",
+    "51":"AliSocial",
+    "52":"DingTalk",
+    "53":"YouTube",
+    "54":"Meipai",
+    "55":"CMCC",
+    "56":"Reddit",
+    "57":"ESurfing",
+    "58":"FacebookAccount",
+    "59":"Douyin",
+    "61":"Apple",
+    "64":"Oasis",
+    "66":"SnapChat",
+    "60":"WeWork",
+    "68":"KuaiShou",
+    "69":"WatermelonVideo",
+    "70":"TikTok",
+    "994":"EasyChat",
+    "995":"KaKao",
+    "996":"Evernote",
+    "997":"WeChat",
+    "998":"QQ",
+    "999":"DingTalkShare",
+}

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/All.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: ccfb03d3187c04ec8ac31585c741b0a9
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 4 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Apple.pltpds

@@ -0,0 +1,4 @@
+{
+    "framework":["/SDK/ShareSDK/Support/PlatformConnector/AppleAccountConnector.framework"],
+  "sysFramework":["AuthenticationServices.framework"]
+}

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Apple.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 52357ac7b60814a29a2aae862825e048
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 3 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/CMCC.pltpds

@@ -0,0 +1,3 @@
+{
+}
+

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/CMCC.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 98f2453093dd941bbb6fe5e1148b6f39
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 3 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Copy.pltpds

@@ -0,0 +1,3 @@
+{
+    "framework" : ["/SDK/ShareSDK/Support/PlatformConnector/CopyConnector.framework"],
+}

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Copy.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: cb04de5102837468185ccbcef63b8da1
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 9 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/DingTalk.pltpds

@@ -0,0 +1,9 @@
+{
+    "folders" : ["/SDK/ShareSDK/Support/PlatformSDK/DingTalkSDK"],
+    "framework" : ["/SDK/ShareSDK/Support/PlatformConnector/DingTalkConnector.framework"],
+    "LSApplicationQueriesSchemes":["dingtalk","dingtalk-open","dingtalk-sso"],
+    "URLSchemes" : {
+    				"CFBundleURLSchemes" :["{appkey}"],
+    				"CFBundleURLName" : "dingTalk"
+    				}
+}

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/DingTalk.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 239d322b0f1ad4704a9ca4fe8000dfaf
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 6 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/DingTalkShare.pltpds

@@ -0,0 +1,6 @@
+{
+    "URLSchemes" : {
+    				"CFBundleURLSchemes" :["{appkey}"],
+    				"CFBundleURLName" : "dingTalkShare"
+    				}
+}

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/DingTalkShare.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: d0a68f81870ed4a66a0e6b23c2ef21a4
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 2 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/DouBan.pltpds

@@ -0,0 +1,2 @@
+{
+}

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/DouBan.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: d96dd6aab804a4397acf2708ce9e9ba8
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 9 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Douyin.pltpds

@@ -0,0 +1,9 @@
+{
+    "folders" : ["/SDK/ShareSDK/Support/PlatformSDK/DouyinOpenSDK"],
+    "framework" : ["/SDK/ShareSDK/Support/PlatformConnector/DouyinConnector.framework"],
+    "LSApplicationQueriesSchemes":["douyinsharesdk","douyinopensdk"],
+    "URLSchemes" : {
+    				"CFBundleURLSchemes" :["{appkey}"],
+    				"CFBundleURLName" : "douyin"
+    				}
+}

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Douyin.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 92de6d9d59b804e4b9302835a16e1af7
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 3 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Dropbox.pltpds

@@ -0,0 +1,3 @@
+{
+    "framework" : ["/SDK/ShareSDK/Support/PlatformConnector/DropboxConnector.framework"],
+}

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Dropbox.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: e6589000366504124a55b88c02c86a46
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 2 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/ESurfing.pltpds

@@ -0,0 +1,2 @@
+{
+}

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/ESurfing.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: cd99b240d1d6e4134b1dd20e1660a039
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 12 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/EasyChat.pltpds

@@ -0,0 +1,12 @@
+{
+    "folders" : ["/SDK/ShareSDK/Support/PlatformSDK/YiXinSDK"],
+    "framework" : ["/SDK/ShareSDK/Support/PlatformConnector/EasyChatConnector.framework"],
+    "buildSettings": { 
+        "ENABLE_BITCODE" : ["0"]
+    },
+    "LSApplicationQueriesSchemes":["yixin","yixinopenapi","yixinoauth","yixinfav"],
+    "URLSchemes" : {
+    				"CFBundleURLSchemes" :["{appkey}"],
+    				"CFBundleURLName" : "yixin"
+    				}
+}

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/EasyChat.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: e5ed3f91c3faf47f89d8e7827fc3977c
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 3 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Evernote.pltpds

@@ -0,0 +1,3 @@
+{
+    "framework" : ["/SDK/ShareSDK/Support/PlatformConnector/EvernoteConnector.framework"],
+}

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Evernote.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 532ed07a151834d1692c096c0fce4b06
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 11 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Facebook.pltpds

@@ -0,0 +1,11 @@
+{
+        "folders" : ["/SDK/ShareSDK/Support/PlatformSDK/FacebookSDK"],
+	"framework" : ["/SDK/ShareSDK/Support/PlatformConnector/FacebookConnector.framework"],
+    "sysFramework":["Accelerate.framework","WebKit.framework"],
+    "LSApplicationQueriesSchemes":["fbauth","fbauth2","fbapi20130214","fbapi","fbapi20160328","fbshareextension","fbapi20150629"],
+    "URLSchemes" : {
+    				"CFBundleURLSchemes" :["fb{appkey}"],
+    				"CFBundleURLName" : "facebook"
+    				},
+"infoPlistSet" :{"FacebookAppID": "{appkey}"}
+}

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Facebook.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 592335ca62d7a42f0abb9b50d5099770
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 12 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/FacebookAccount.pltpds

@@ -0,0 +1,12 @@
+{
+    "folders" : ["/SDK/ShareSDK/Support/PlatformSDK/FacebookAccountSDK"],
+    "framework" : ["/SDK/ShareSDK/Support/PlatformConnector/FacebookAccountConnector.framework"],
+    "URLSchemes" : {
+    				"CFBundleURLSchemes" :["ak{appkey}"],
+    				"CFBundleURLName" : "facebookAccount"
+    				},
+    "infoPlistSet": {
+                     "FacebookAppID" : "{appkey}",
+                     "AccountKitClientToken" : "c30c08723aa8c48fbd5e01d1c3103891"
+    }
+}

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/FacebookAccount.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 56879845cf6814c6da9b0bea2f40d125
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 11 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/FacebookMessenger.pltpds

@@ -0,0 +1,11 @@
+{
+    "framework" : ["/SDK/ShareSDK/Support/PlatformConnector/FacebookMessengerConnector.framework"],
+    "LSApplicationQueriesSchemes":["fb-messenger-platform-20150714","fb-messenger","fb-messenger-share-api"],
+    "URLSchemes" : {
+    				"CFBundleURLSchemes" :["fb{appkey}"],
+    				"CFBundleURLName" : "facebookmessage"
+    				},
+	"infoPlistSet":{
+		"FacebookAppID":"{appkey}"
+	}
+}

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/FacebookMessenger.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 14aa1891d8ded4c8d88d6710bddc0c3e
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 3 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Flickr.pltpds

@@ -0,0 +1,3 @@
+{
+	"framework" : ["/SDK/ShareSDK/Support/PlatformConnector/FlickrConnector.framework"]
+}

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Flickr.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 7d7c3a5c0d64941ef8fdfa303f702697
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 4 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/GooglePlus.pltpds

@@ -0,0 +1,4 @@
+{
+	"folders" : ["/SDK/ShareSDK/Support/PlatformSDK/GoogleSDK"],
+	"framework" : ["/SDK/ShareSDK/Support/PlatformConnector/GooglePlusConnector.framework"]
+}

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/GooglePlus.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 089e6d560281341bab2ea4c55fa7bfa7
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 5 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Instagram.pltpds

@@ -0,0 +1,5 @@
+{
+    "framework" : ["/SDK/ShareSDK/Support/PlatformConnector/InstagramConnector.framework"],
+    "permissions":{"NSPhotoLibraryUsageDescription":"从手机相册中选择相片视频"},
+    "LSApplicationQueriesSchemes":["instagram","instagram-capture","instagram-stories"]
+}

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Instagram.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: e44a208a5480143e7a585aafb35a00d7
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 3 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Instapaper.pltpds

@@ -0,0 +1,3 @@
+{
+	"framework" : ["/SDK/ShareSDK/Support/PlatformConnector/InstapaperConnector.framework"],
+}

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Instapaper.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: f62f03dfec6e345ad877ebda2d72262a
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 12 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/KaKao.pltpds

@@ -0,0 +1,12 @@
+{
+    "folders" : ["/SDK/ShareSDK/Support/PlatformSDK/KaKaoSDK"],
+    "framework" : ["/SDK/ShareSDK/Support/PlatformConnector/KakaoConnector.framework"],
+    "LSApplicationQueriesSchemes":["kakaokompassauth","storykompassauth","kakaolink","storylink","kakaotalk-5.9.7","kakao3rdauth","kakaostory-2.9.0","kakao{appkey}"],
+    "URLSchemes" : {
+    				"CFBundleURLSchemes" :["kakao{appkey}"],
+    				"CFBundleURLName" : "kakao"
+    				},
+    "infoPlistSet":{
+		"KAKAO_APP_KEY":"{appkey}"
+	}
+}

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/KaKao.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 037f5811c9e4447c8ac0846366614571
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 3 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Kaixin.pltpds

@@ -0,0 +1,3 @@
+{
+	"framework" : ["/SDK/ShareSDK/Support/PlatformConnector/KaiXinConnector.framework"]
+}

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Kaixin.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 03be0215a36a24ca7882eff1323bd807
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 9 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/KuaiShou.pltpds

@@ -0,0 +1,9 @@
+{
+    "folders" : ["/SDK/ShareSDK/Support/PlatformSDK/KwaiSDKLibrary"],
+    "framework" : ["/SDK/ShareSDK/Support/PlatformConnector/KuaiShouConnector.framework"],
+    "LSApplicationQueriesSchemes":["KwaiAuth2","ksnebula","KwaiSDKMediaV2","kwai.clip.multi","KwaiBundleToken","kwaiopenapi","kwaiAuth2","kwai"],
+    "URLSchemes" : {
+    				"CFBundleURLSchemes" :["{appkey}"],
+    				"CFBundleURLName" : "kuaishou"
+    				}
+}

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/KuaiShou.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 57548175106664cb688a713cff8a7b8c
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 12 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Line.pltpds

@@ -0,0 +1,12 @@
+{
+	"folders" : ["/SDK/ShareSDK/Support/PlatformSDK/LineSDK"],
+    "framework" : ["/SDK/ShareSDK/Support/PlatformConnector/LineConnector.framework"],
+    "LSApplicationQueriesSchemes":["lineauth","lineauth2","line","line3rdp.$(PRODUCT_BUNDLE_IDENTIFIER)"],
+    "URLSchemes" : {
+    				"CFBundleURLSchemes" :["line3rdp.$(PRODUCT_BUNDLE_IDENTIFIER)"],
+    				"CFBundleURLName" : "line"
+    				},
+    "infoPlistSet":{
+		"LineSDKConfig":{"ChannelID":"{appkey}","UniversalLink":"{universalLink}"}
+	}
+}

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Line.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 20e7ced9fdfea4c5880852f8c58c8e53
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 3 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/LinkedIn.pltpds

@@ -0,0 +1,3 @@
+{
+	"framework" : ["/SDK/ShareSDK/Support/PlatformConnector/LinkedInConnector.framework"]
+}

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/LinkedIn.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 8f23edba541fd403fa9e51ab7480d126
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 3 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Mail.pltpds

@@ -0,0 +1,3 @@
+{
+    "framework" : ["/SDK/ShareSDK/Support/PlatformConnector/MailConnector.framework"],
+}

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Mail.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 084cac25ec9254b31860a97e8cdd4be7
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Meipai.pltpds

@@ -0,0 +1,7 @@
+{
+    "permissions":{"NSPhotoLibraryUsageDescription":"从手机相册中选择相片视频"}
+    "URLSchemes" : {
+    				"CFBundleURLSchemes" :["mp{appkey}"],
+    				"CFBundleURLName" : "meipai"
+    				}
+}

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Meipai.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: c1a5ca50790184debb09e6b3c8025734
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 3 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Mingdao.pltpds

@@ -0,0 +1,3 @@
+{
+	"framework" : ["/SDK/ShareSDK/Support/PlatformConnector/MingDaoConnector.framework"]
+}

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Mingdao.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 412f412c5811b44878cb96e1efb194df
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 9 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Oasis.pltpds

@@ -0,0 +1,9 @@
+{
+    "folders" : ["/SDK/ShareSDK/Support/PlatformSDK/OasisSDK"],
+    "framework" : ["/SDK/ShareSDK/Support/PlatformConnector/OasisConnector.framework"],
+    "LSApplicationQueriesSchemes":["oasis"],
+    "URLSchemes" : {
+    				"CFBundleURLSchemes" :["oasis{appkey}"],
+    				"CFBundleURLName" : "oasis"
+    				}
+}

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Oasis.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 5a917e28481a54bdea501f281ec8a8c6
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Pinterest.pltpds

@@ -0,0 +1,8 @@
+{
+	"LSApplicationQueriesSchemes":["pinterestsdk.v1"],
+    "URLSchemes" : {
+    				"CFBundleURLSchemes" :["pdk{appkey}"],
+    				"CFBundleURLName" : "pinterest"
+    				},
+    "framework" : ["/SDK/ShareSDK/Support/PlatformConnector/PinterestConnector.framework"]
+}

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Pinterest.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 2276d2bf6249f4a3798e320151ee43f4
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Pocket.pltpds

@@ -0,0 +1,8 @@
+{
+	"LSApplicationQueriesSchemes":["pocket-oauth-v1","pocket",],
+	"framework" : ["/SDK/ShareSDK/Support/PlatformConnector/PocketConnector.framework"],
+    "URLSchemes" : {
+    				"CFBundleURLSchemes" :["pocketapp1234"],
+    				"CFBundleURLName" : "pocket"
+    				}
+}

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Pocket.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 0d8449d1ff7ed487a96bf56337ccd1e7
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 3 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Print.pltpds

@@ -0,0 +1,3 @@
+{
+    "framework" : ["/SDK/ShareSDK/Support/PlatformConnector/PrintConnector.framework"],
+}

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Print.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 625aa3aa084634f7daaf6dd03dade3df
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 15 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/QQ.pltpds

@@ -0,0 +1,15 @@
+{
+    "folders" : ["/SDK/ShareSDK/Support/PlatformSDK/QQSDK"],
+    "framework" : ["/SDK/ShareSDK/Support/PlatformConnector/QQConnector.framework"],
+    "LSApplicationQueriesSchemes":["mqq","mqqapi","mqqwpa","mqqbrowser","mttbrowser","mqqOpensdkSSoLogin","mqqopensdkapiV2","mqqopensdkapiV3","mqqopensdkapiV4",
+								"wtloginmqq2","mqzone","mqzoneopensdk","mqzoneopensdkapi","mqzoneopensdkapi19","mqzoneopensdkapiV2","mqqapiwallet","mqqopensdkfriend",
+								"mqqopensdkdataline","mqqgamebindinggroup","mqqopensdkgrouptribeshare","tencentapi.qq.reqContent","tencentapi.qzone.reqContent","tim",
+								"timapi","timopensdkfriend","timwpa","timgamebindinggroup","timapiwallet","timOpensdkSSoLogin","wtlogintim","timopensdkgrouptribeshare",
+								"timopensdkapiV4","timgamebindinggroup","timopensdkdataline","wtlogintimV1","timapiV1","mqqopensdkminiapp"],
+    "sysFramework":["WebKit.framework"],
+    "URLSchemes" : {
+    				"CFBundleURLSchemes" :["tencent{appkey}","QQ{appkey16}"],
+    				"CFBundleURLName" : "QQ"
+    				}
+}
+

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/QQ.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 1783909654a0447b2816469dcad093f2
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 3 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Reddit.pltpds

@@ -0,0 +1,3 @@
+{
+    "framework" : ["/SDK/ShareSDK/Support/PlatformConnector/RedditConnector.framework"]
+}

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Reddit.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: d24b6601c5c66406197d4b480f802542
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 5 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Renren.pltpds

@@ -0,0 +1,5 @@
+{
+    "buildSettings": { 
+        "ENABLE_BITCODE" : ["0"]
+    }
+}

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Renren.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: f9fb9d470e56e425bb9fbc9ae08aab95
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 3 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/SMS.pltpds

@@ -0,0 +1,3 @@
+{
+    "framework" : ["/SDK/ShareSDK/Support/PlatformConnector/SMSConnector.framework"],
+}

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/SMS.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: b048902595feb4b8b8730f54ae3458e5
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 10 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/SinaWeibo.pltpds

@@ -0,0 +1,10 @@
+{
+    "folders" : ["/SDK/ShareSDK/Support/PlatformSDK/SinaWeiboSDK"],
+    "framework" : ["/SDK/ShareSDK/Support/PlatformConnector/SinaWeiboConnector.framework"],
+"permissions":{"NSPhotoLibraryAddUsageDescription":"保存照片到系统相册"},
+    "LSApplicationQueriesSchemes":["sinaweibosso","weibo","weibosdk","weibosdk2.5", "weibosdk3.3","sinaweibo","sinaweibohd"],
+    "URLSchemes" : {
+    				"CFBundleURLSchemes" :["wb{appkey}"],
+    				"CFBundleURLName" : "sinaWeibo"
+    				}
+}

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/SinaWeibo.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: c87ba34a3870d45afa42e2c8331ef32c
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 15 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/SnapChat.pltpds

@@ -0,0 +1,15 @@
+{
+	"folders" : ["/SDK/ShareSDK/Support/PlatformSDK/SnapChat"],
+    "framework" : ["/SDK/ShareSDK/Support/PlatformConnector/SnapChatConnector.framework"],
+    "LSApplicationQueriesSchemes":["snapchat"],
+    "URLSchemes" : {
+    				"CFBundleURLSchemes" :["{redirect_uri}"],
+    				"CFBundleURLName" : "snapchat"
+    				},
+    "infoPlistSet":{
+		    "SCSDKRedirectUrl":"ssdkmoba0b0c0d0://mob",
+            "SCSDKClientId":"{appkey}",
+            "SCSDKScopes":["https://auth.snapchat.com/oauth2/api/user.external_id","https://auth.snapchat.com/oauth2/api/user.display_name","https://auth.snapchat.com/oauth2/api/user.bitmoji.avatar"]
+	    }
+    
+}

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/SnapChat.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: a0a91a359773149298fcc40c20b931f0
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 4 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Telegram.pltpds

@@ -0,0 +1,4 @@
+{
+    "framework" : ["/SDK/ShareSDK/Support/PlatformConnector/TelegramConnector.framework"],
+    "LSApplicationQueriesSchemes":["tg"]
+}

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/Telegram.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: cecf9f3649c864ddfaf67fc59133098b
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 2 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/TencentWeibo.pltpds

@@ -0,0 +1,2 @@
+{
+}

+ 7 - 0
GameClient/Assets/Plugins/iOS/ShareSDK/Editor/Platformpds/TencentWeibo.pltpds.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: d9fb9dd8a625242b286aae5843554eeb
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

Some files were not shown because too many files changed in this diff