TapCommon-Unity/Editor/TapCommonIOSProcessor.cs

65 lines
2.9 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using UnityEditor;
using UnityEditor.Callbacks;
using UnityEditor.iOS.Xcode;
using UnityEngine;
namespace TapTap.Common.Editor
{
public static class TapCommonIOSProcessor
{
// 添加标签unity导出工程后自动执行该函数
[PostProcessBuild(99)]
public static void OnPostprocessBuild(BuildTarget buildTarget, string path)
{
if (buildTarget != BuildTarget.iOS) return;
// 获得工程路径
var projPath = TapCommonCompile.GetProjPath(path);
var proj = TapCommonCompile.ParseProjPath(projPath);
var target = TapCommonCompile.GetUnityTarget(proj);
var unityFrameworkTarget = TapCommonCompile.GetUnityFrameworkTarget(proj);
if (TapCommonCompile.CheckTarget(target))
{
Debug.LogError("Unity-iPhone is NUll");
return;
}
proj.AddBuildProperty(target, "OTHER_LDFLAGS", "-ObjC");
proj.AddBuildProperty(unityFrameworkTarget, "OTHER_LDFLAGS", "-ObjC");
proj.SetBuildProperty(target, "ENABLE_BITCODE", "NO");
proj.SetBuildProperty(target, "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES", "YES");
proj.SetBuildProperty(target, "SWIFT_VERSION", "5.0");
proj.SetBuildProperty(target, "CLANG_ENABLE_MODULES", "YES");
proj.SetBuildProperty(unityFrameworkTarget, "ENABLE_BITCODE", "NO");
proj.SetBuildProperty(unityFrameworkTarget, "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES", "YES");
proj.SetBuildProperty(unityFrameworkTarget, "SWIFT_VERSION", "5.0");
proj.SetBuildProperty(unityFrameworkTarget, "CLANG_ENABLE_MODULES", "YES");
proj.AddFrameworkToProject(unityFrameworkTarget, "MobileCoreServices.framework", false);
proj.AddFrameworkToProject(unityFrameworkTarget, "WebKit.framework", false);
proj.AddFrameworkToProject(unityFrameworkTarget, "Security.framework", false);
proj.AddFrameworkToProject(unityFrameworkTarget, "SystemConfiguration.framework", false);
proj.AddFrameworkToProject(unityFrameworkTarget, "CoreTelephony.framework", false);
proj.AddFrameworkToProject(unityFrameworkTarget, "SystemConfiguration.framework", false);
proj.AddFileToBuild(unityFrameworkTarget,
proj.AddFile("usr/lib/libc++.tbd", "libc++.tbd", PBXSourceTree.Sdk));
if (TapCommonCompile.HandlerIOSSetting(path,
Application.dataPath,
"TapCommonResource",
"com.tapsdk.common",
"Common",
new[] {"TapCommonResource.bundle"},
target, projPath, proj))
{
Debug.Log("TapCommon add Bundle Success!");
return;
}
Debug.LogError("TapCommon add Bundle Failed!");
}
}
}