桌面上的 AddBuildProperty(不是 iOS)Unity Xcode 构建?

AddBuildProperty on a Desktop (not iOS) Unity Xcode build?

在 Unity 中,出色的 post 处理器使得添加构建标志变得非常容易

在一个 iOS 项目中...

public class BuildPostProcessor
{
    public static void OnPostProcessBuild(BuildTarget target, string path) ...

            PBXProject project = new PBXProject();
            string sPath = PBXProject.GetPBXProjectPath(path);

“PBXProject”的字面意思是“.pbxproj 文件”,也就是说,一个 plist 文本文件。

然后非常容易,例如

project.AddBuildProperty(g, "SOME_FLAG", "--whoa");

或者添加框架等

Mac 桌面构建怎么样?

这对于 iOS 构建非常有用,但是您如何在 OSX 桌面项目上“AddBuildProperty”?

似乎没有“StandaloneProject”或类似的结构。

这是怎么做到的?

我需要添加 OTHER_CODE_SIGN_FLAGS --deep。目前我必须创建 Xcode 项目并每次都手动完成。当然有一种方法可以使用 Unity 的优秀 AddBuildProperty 或类似的调用,以及桌面项目?

这是完成它的一种混乱方法:

using System.IO;
using UnityEngine;
using UnityEditor;
using UnityEditor.Callbacks;

public class BuildPostProcessor
{

    [PostProcessBuildAttribute(1)]
    public static void OnPostProcessBuild(BuildTarget target, string path)
    {
        if (target == BuildTarget.StandaloneOSX)
        {
            string macStylePath = path + "/project.pbxproj";

            string s = File.ReadAllText(macStylePath);
            s = s.Replace(
                "CODE_SIGN_STYLE = Automatic;",
                "CODE_SIGN_STYLE = Automatic;\n\t\t\tOTHER_CODE_SIGN_FLAGS = --deep;");

            File.Delete(macStylePath);
            File.WriteAllText(macStylePath, s);
            Debug.Log("OnPostProcessBuild ... added that flag'");
        }
    }
}

没有真正干净的方法来获取这些文件的内容,所以只需对相关项目执行 grep,在其中添加一些内容。有效。