PostProcessor.cs 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. using UnityEditor;
  2. using UnityEngine;
  3. using UnityEditor.Callbacks;
  4. using UnityEditor.iOS.Xcode;
  5. using System.IO;
  6. using System.Collections;
  7. using System.Collections.Generic;
  8. public class NewBehaviourScript
  9. {
  10. [PostProcessBuild(100)]
  11. public static void OnPostprocessBuild(BuildTarget buildTarget, string buildPath)
  12. {
  13. if (buildTarget != BuildTarget.iOS)
  14. {
  15. return;
  16. }
  17. string projectPath = PBXProject.GetPBXProjectPath(buildPath);
  18. PBXProject project = new PBXProject();
  19. project.ReadFromFile(projectPath);
  20. //关闭BitCode
  21. string target = project.TargetGuidByName("Unity-iPhone");
  22. project.SetBuildProperty(target, "ENABLE_BITCODE", "NO");
  23. //添加资源
  24. FileUtil.CopyFileOrDirectory(Application.dataPath + "/AppleDependency", buildPath + "/AppleDependency");
  25. string[] filePaths = Directory.GetFiles(buildPath + "/AppleDependency", "*.*", SearchOption.AllDirectories);
  26. for (int i = 0; i < filePaths.Length; i++)
  27. {
  28. if (Path.GetExtension(filePaths[i]) == ".meta")
  29. {
  30. continue;
  31. }
  32. project.AddFileToBuild(target, project.AddFile(filePaths[i], filePaths[i].Replace(buildPath, ""), PBXSourceTree.Source));
  33. }
  34. //添加引用库
  35. string targetGuid = project.TargetGuidByName("Unity-iPhone");
  36. project.AddFrameworkToProject(targetGuid, "libc++.tbd", false);
  37. project.AddFrameworkToProject(targetGuid, "libz.tbd", false);
  38. project.AddFrameworkToProject(targetGuid, "SystemConfiguration.framework", false);
  39. project.AddFrameworkToProject(targetGuid, "CoreTelephony.framework", false);
  40. project.AddFrameworkToProject(targetGuid, "QuartzCore.framework", false);
  41. project.AddFrameworkToProject(targetGuid, "CoreText.framework", false);
  42. project.AddFrameworkToProject(targetGuid, "CoreGraphics.framework", false);
  43. project.AddFrameworkToProject(targetGuid, "UIKit.framework", false);
  44. project.AddFrameworkToProject(targetGuid, "Foundation.framework", false);
  45. project.AddFrameworkToProject(targetGuid, "CFNetwork.framework", false);
  46. project.AddFrameworkToProject(targetGuid, "CoreMotion.framework", false);
  47. project.AddFrameworkToProject(targetGuid, "AlipaySDK.framework", false);
  48. project.AddFrameworkToProject(targetGuid, "Security.framework", false);
  49. //保存
  50. File.WriteAllText(projectPath, project.WriteToString());
  51. }
  52. }