45 lines
1.4 KiB
C#
45 lines
1.4 KiB
C#
using UnityEngine;
|
|
using UnityEditor;
|
|
using UnityEditor.Callbacks;
|
|
using System.IO;
|
|
using UnityEditor.iOS.Xcode;
|
|
|
|
public static class FixUnityiOSDuplicateResources
|
|
{
|
|
[PostProcessBuild(9999)]
|
|
public static void OnPostProcessBuild(BuildTarget target, string path)
|
|
{
|
|
if (target != BuildTarget.iOS) return;
|
|
|
|
// ✅ 正确路径(修复完毕)
|
|
string projPath = Path.Combine(path, "Unity-iPhone.xcodeproj", "project.pbxproj");
|
|
|
|
PBXProject proj = new PBXProject();
|
|
proj.ReadFromFile(projPath);
|
|
|
|
string mainTarget = proj.GetUnityMainTargetGuid();
|
|
|
|
// 移除重复资源,解决 Multiple commands produce 报错
|
|
RemoveFile(proj, mainTarget, "PAGAdSDK.bundle");
|
|
RemoveFile(proj, mainTarget, "AppLovinSDK.bundle");
|
|
RemoveFile(proj, mainTarget, "BigoADS.bundle");
|
|
RemoveFile(proj, mainTarget, "InMobiSDK.bundle");
|
|
|
|
File.WriteAllText(projPath, proj.WriteToString());
|
|
Debug.Log("✅ 自动修复 iOS 重复资源冲突成功!");
|
|
}
|
|
|
|
private static void RemoveFile(PBXProject proj, string targetGuid, string filename)
|
|
{
|
|
try
|
|
{
|
|
string guid = proj.FindFileGuidByProjectPath(filename);
|
|
if (!string.IsNullOrEmpty(guid))
|
|
{
|
|
proj.RemoveFileFromBuild(targetGuid, guid);
|
|
proj.RemoveFile(guid);
|
|
}
|
|
}
|
|
catch { }
|
|
}
|
|
} |