ShareSDKPostProcessBuild.cs 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. using UnityEngine;
  2. using UnityEditor;
  3. using UnityEditor.Callbacks;
  4. using System.Collections;
  5. using cn.sharesdk.unity3d.sdkporter;
  6. using cn.sharesdk.unity3d;
  7. using System.IO;
  8. using System.Runtime.Serialization.Formatters.Binary;
  9. using System;
  10. public static class ShareSDKPostProcessBuild
  11. {
  12. //[PostProcessBuild]
  13. [PostProcessBuildAttribute(88)]
  14. public static void onPostProcessBuild(BuildTarget target,string targetPath)
  15. {
  16. string unityEditorAssetPath = Application.dataPath;
  17. if (target != BuildTarget.iOS)
  18. {
  19. Debug.LogWarning ("Target is not iPhone. XCodePostProcess will not run");
  20. return;
  21. }
  22. XCProject project = new XCProject (targetPath);
  23. //var files = System.IO.Directory.GetFiles( unityEditorAssetPath, "*.projmods", System.IO.SearchOption.AllDirectories );
  24. var files = System.IO.Directory.GetFiles( unityEditorAssetPath + "/ShareSDKiOSAutoPackage/Editor/SDKPorter", "*.projmods", System.IO.SearchOption.AllDirectories);
  25. foreach( var file in files )
  26. {
  27. project.ApplyMod( file );
  28. }
  29. //如需要预配置Xocode中的URLScheme 和 白名单,请打开下两行代码,并自行配置相关键值
  30. string projPath = Path.GetFullPath (targetPath);
  31. EditInfoPlist (projPath);
  32. //Finally save the xcode project
  33. project.Save();
  34. }
  35. private static void EditInfoPlist(string projPath)
  36. {
  37. XCPlist plist = new XCPlist (projPath);
  38. //URL Scheme 添加
  39. string PlistAdd = @"
  40. <key>CFBundleURLTypes</key>
  41. <array>
  42. <dict>
  43. <key>CFBundleURLName</key>
  44. <string>meipai</string>
  45. <key>CFBundleURLSchemes</key>
  46. <array>
  47. <string>mp1089867596</string>
  48. </array>
  49. </dict>
  50. <dict>
  51. <key>CFBundleURLSchemes</key>
  52. <array>
  53. <string>dingoanxyrpiscaovl4qlw</string>
  54. </array>
  55. <key>CFBundleURLName</key>
  56. <string>dingtalk</string>
  57. </dict>
  58. <dict>
  59. <key>CFBundleURLSchemes</key>
  60. <array>
  61. <string>ap2015072400185895</string>
  62. </array>
  63. <key>CFBundleURLName</key>
  64. <string>alipayShare</string>
  65. </dict>
  66. <dict>
  67. <key>CFBundleURLSchemes</key>
  68. <array>
  69. <string>vk5312801</string>
  70. <string>yx0d9a9f9088ea44d78680f3274da1765f</string>
  71. <string>pin4797078908495202393</string>
  72. <string>kakao48d3f524e4a636b08d81b3ceb50f1003</string>
  73. <string>pdk4797078908495202393</string>
  74. <string>tb2QUXqO9fcgGdtGG1FcvML6ZunIQzAEL8xY6hIaxdJnDti2DYwM</string>
  75. <string>com.mob.demoShareSDK</string>
  76. <string>rm226427com.mob.demoShareSDK</string>
  77. <string>pocketapp1234</string>
  78. <string>QQ05FB8B52</string>
  79. <string>wx4868b35061f87885</string>
  80. <string>tencent100371282</string>
  81. <string>fb107704292745179</string>
  82. <string>wb568898243</string>
  83. </array>
  84. </dict>
  85. </array>";
  86. //白名单添加
  87. string LSAdd = @"
  88. <key>LSApplicationQueriesSchemes</key>
  89. <array>
  90. <string>dingtalk-open</string>
  91. <string>dingtalk</string>
  92. <string>mqqopensdkapiV4</string>
  93. <string>weibosdk</string>
  94. <string>sinaweibohd</string>
  95. <string>sinaweibo</string>
  96. <string>vkauthorize</string>
  97. <string>fb-messenger</string>
  98. <string>yixinfav</string>
  99. <string>yixinoauth</string>
  100. <string>yixinopenapi</string>
  101. <string>yixin</string>
  102. <string>pinit</string>
  103. <string>kakaolink</string>
  104. <string>kakao48d3f524e4a636b08d81b3ceb50f1003</string>
  105. <string>alipay</string>
  106. <string>storykompassauth</string>
  107. <string>pinterestsdk.v1</string>
  108. <string>kakaokompassauth</string>
  109. <string>alipayshare</string>
  110. <string>pinit</string>
  111. <string>line</string>
  112. <string>whatsapp</string>
  113. <string>mqqwpa</string>
  114. <string>instagram</string>
  115. <string>fbauth2</string>
  116. <string>renren</string>
  117. <string>renrenios</string>
  118. <string>renrenapi</string>
  119. <string>rm226427com.mob.demoShareSDK</string>
  120. <string>mqq</string>
  121. <string>mqqopensdkapiV2</string>
  122. <string>mqqopensdkapiV3</string>
  123. <string>wtloginmqq2</string>
  124. <string>mqqapi</string>
  125. <string>mqqOpensdkSSoLogin</string>
  126. <string>sinaweibohdsso</string>
  127. <string>sinaweibosso</string>
  128. <string>wechat</string>
  129. <string>weixin</string>
  130. </array>";
  131. //在plist里面增加一行
  132. plist.AddKey(PlistAdd);
  133. plist.AddKey (LSAdd);
  134. ShareSDKConfig theConfig;
  135. try
  136. {
  137. string filePath = Application.dataPath + "/Plugins/ShareSDK/Editor/ShareSDKConfig.bin";
  138. BinaryFormatter formatter = new BinaryFormatter();
  139. Stream destream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read);
  140. ShareSDKConfig config = (ShareSDKConfig)formatter.Deserialize(destream);
  141. destream.Flush();
  142. destream.Close();
  143. theConfig = config;
  144. }
  145. catch(Exception)
  146. {
  147. theConfig = new ShareSDKConfig ();
  148. }
  149. string AppKey = @"<key>MOBAppkey</key> <string>" + theConfig.appKey + "</string>";
  150. string AppSecret = @"<key>MOBAppSecret</key> <string>" + theConfig.appSecret + "</string>";
  151. //在plist里面增加一行
  152. plist.AddKey(AppKey);
  153. plist.AddKey(AppSecret);
  154. plist.Save();
  155. }
  156. }