Unity 打包的iOS工程中自动添加Associated Domains
unity版本 2021.3
using UnityEditor;
using UnityEditor.Build;
using UnityEditor.Build.Reporting;
using UnityEditor.iOS.Xcode;
using UnityEngine;
public class UniversalLinkPostBuild : IPostprocessBuildWithReport
{
public int callbackOrder
{
get { return 1; }
}
public void OnPostprocessBuild(BuildReport report)
{
if (report.summary.platform == BuildTarget.iOS)
{
AddAssociatedDomainsCapability(report.summary.outputPath);
}
}
private static void AddAssociatedDomainsCapability(string path)
{
// Get the Xcode project path
var projPath = PBXProject.GetPBXProjectPath(path);
var proj = new PBXProject();
proj.ReadFromFile(projPath);
string entitlementsFileName = "Unity-iPhone.entitlements";
// Add Associated Domains capability
var manager = new ProjectCapabilityManager(
projPath,
entitlementsFileName,
null,
targetGuid: proj.GetUnityMainTargetGuid()
);
manager.AddAssociatedDomains(new string[]
{
"applinks:xxx.xxxx.xxxx",
});
manager.WriteToFile();
}
}
xxx.xxxx.xxxx替换为存apple-app-site-association的域名即可