方法一
Project Setting中修改

方法二
参考 Xcode自动填入签名团队 此篇文章做如下修改
#if UNITY_VISIONOS
using UnityEngine;
using UnityEditor;
using UnityEditor.Callbacks;
using UnityEditor.iOS.Xcode;
using System.IO;
using System.Text;
public class AutoSignXcode
{
// ========================================================
// 【请在这里填入你的 Team ID】
// ========================================================
private const string AppleTeamID = "你的apple team id";
[PostProcessBuild(999)] // 999表示最后执行,防止被其他插件覆盖
public static void OnPostProcessBuild(BuildTarget buildTarget, string path)
{
// 只处理 VisionOS 平台
if (buildTarget != BuildTarget.VisionOS) return;
Debug.Log("开始自动配置 Xcode 签名设置...");
// 1. 获取 Xcode 工程路径
string projPath = PBXProject.GetPBXProjectPath(path);
string newPath = projPath.Replace("Unity-iPhone", "Unity-VisionOS");
// 2. 读取工程文件
PBXProject proj = new PBXProject();
proj.ReadFromFile(newPath);
// 3. 获取主要 Target (Unity-iPhone)
// Unity 2019.3 以后分为 MainTarget 和 FrameworkTarget,签名主要签在 MainTarget 上
#if UNITY_2019_3_OR_NEWER
string targetGuid = proj.GetUnityMainTargetGuid();
#else
string targetGuid = proj.TargetGuidByName(PBXProject.GetUnityTargetName());
#endif
// 4. 核心操作:开启自动签名 (Automatically manage signing)
proj.SetBuildProperty(targetGuid, "CODE_SIGN_STYLE", "Automatic");
// 5. 核心操作:设置开发团队 (Team ID)
if (AppleTeamID != "YOUR_TEAM_ID_HERE")
{
proj.SetTeamId(targetGuid, AppleTeamID);
//proj.SetBuildProperty(targetGuid, "PROVISIONING_PROFILE_SPECIFIER", "");
//proj.SetBuildProperty(targetGuid, "PROVISIONING_PROFILE", "");
}
else
{
Debug.LogError("【自动签名失败】请在 AutoSignXcode.cs 脚本中填入你的 Apple Team ID!");
}
// --- 自动设置相机权限描述 (防止你Build Settings里忘填) ---
string plistPath = path + "/Info.plist";
PlistDocument plist = new PlistDocument();
plist.ReadFromFile(plistPath);
PlistElementDict rootDict = plist.root;
// 检查是否有相机权限,没有就加上
if (rootDict["NSCameraUsageDescription"] == null)
{
rootDict.SetString("NSCameraUsageDescription", "此应用需要使用相机来提供增强现实体验,感知您周围的空间");
}
if(rootDict["NSHandTrackingUsageDescription"]==null)
{
rootDict.SetString("NSHandTrackingUsageDescription","此应用需要使用运动传感器来追踪手部动作,提供沉浸式交互");
}
if(rootDict["NSSceneDepthUsageDescription"]==null)
{
rootDict.SetString("NSSceneDepthUsageDescription","此应用需要访问深度数据以理解您周围环境的几何形状");
}
if(rootDict["NSWorldSensingUsageDescription"]==null)
{
rootDict.SetString("NSSceneDepthUsageDescription","此应用需要访问世界感知以理解您周围环境的几何形状");
}
// 6. 保存修改
File.WriteAllText(plistPath, plist.WriteToString(), new UTF8Encoding(false)); // 保存 plist
proj.WriteToFile(newPath); // 保存 xcodeproj
Debug.Log("Xcode 签名与权限配置完成!");
}
}
#endif
240

被折叠的 条评论
为什么被折叠?



