TapCommonIOSProcessor.cs 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. using System.IO;
  2. using UnityEditor;
  3. using UnityEditor.Callbacks;
  4. # if UNITY_IOS
  5. using UnityEditor.iOS.Xcode;
  6. #endif
  7. using UnityEngine;
  8. namespace TapTap.Common.Editor
  9. {
  10. # if UNITY_IOS
  11. public static class TapCommonIOSProcessor
  12. {
  13. // 添加标签,unity导出工程后自动执行该函数
  14. [PostProcessBuild(99)]
  15. public static void OnPostprocessBuild(BuildTarget buildTarget, string path)
  16. {
  17. if (buildTarget != BuildTarget.iOS) return;
  18. // 获得工程路径
  19. var projPath = TapCommonCompile.GetProjPath(path);
  20. var proj = TapCommonCompile.ParseProjPath(projPath);
  21. var target = TapCommonCompile.GetUnityTarget(proj);
  22. var unityFrameworkTarget = TapCommonCompile.GetUnityFrameworkTarget(proj);
  23. if (TapCommonCompile.CheckTarget(target))
  24. {
  25. Debug.LogError("Unity-iPhone is NUll");
  26. return;
  27. }
  28. proj.AddBuildProperty(target, "OTHER_LDFLAGS", "-ObjC");
  29. proj.AddBuildProperty(unityFrameworkTarget, "OTHER_LDFLAGS", "-ObjC");
  30. proj.SetBuildProperty(target, "ENABLE_BITCODE", "NO");
  31. proj.SetBuildProperty(target, "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES", "YES");
  32. proj.SetBuildProperty(target, "SWIFT_VERSION", "5.0");
  33. proj.SetBuildProperty(target, "CLANG_ENABLE_MODULES", "YES");
  34. proj.SetBuildProperty(unityFrameworkTarget, "ENABLE_BITCODE", "NO");
  35. proj.SetBuildProperty(unityFrameworkTarget, "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES", "NO");
  36. proj.SetBuildProperty(unityFrameworkTarget, "SWIFT_VERSION", "5.0");
  37. proj.SetBuildProperty(unityFrameworkTarget, "CLANG_ENABLE_MODULES", "YES");
  38. proj.AddFrameworkToProject(unityFrameworkTarget, "MobileCoreServices.framework", false);
  39. proj.AddFrameworkToProject(unityFrameworkTarget, "WebKit.framework", false);
  40. proj.AddFrameworkToProject(unityFrameworkTarget, "Security.framework", false);
  41. proj.AddFrameworkToProject(unityFrameworkTarget, "SystemConfiguration.framework", false);
  42. proj.AddFrameworkToProject(unityFrameworkTarget, "CoreTelephony.framework", false);
  43. proj.AddFrameworkToProject(unityFrameworkTarget, "SystemConfiguration.framework", false);
  44. proj.AddFileToBuild(unityFrameworkTarget,
  45. proj.AddFile("usr/lib/libc++.tbd", "libc++.tbd", PBXSourceTree.Sdk));
  46. if (TapCommonCompile.HandlerIOSSetting(path,
  47. Application.dataPath,
  48. "TapCommonResource",
  49. "com.taptap.tds.common",
  50. "Common",
  51. new[] {"TapCommonResource.bundle"},
  52. target, projPath, proj))
  53. {
  54. Debug.Log("TapCommon add Bundle Success!");
  55. return;
  56. }
  57. Debug.LogError("TapCommon add Bundle Failed!");
  58. }
  59. }
  60. #endif
  61. }