Unity Cloud Build:后导出方法

Cos*_*cho 5 .net c# unity-game-engine ios

问题:

我似乎无法为 Unity 云构建的后导出方法找出正确的签名。根据文档:

您希望我们在完成 Unity 构建过程后(但在 Xcode 之前)调用的公共静态方法的完全限定名称。例如:ClassName.CoolMethod 或 NameSpace.ClassName.CoolMethod。没有尾随括号,并且它不能与您的 Pre-Export 方法同名!此方法必须接受一个字符串参数,该参数将接收导出的 Unity 播放器(或 iOS 中的 Xcode 项目)的路径。

这是我的代码:

 public static void OnPostprocessDevBuildIOS(string ExportPath)
    {
        var projPath = ExportPath + "/Unity-iPhone.xcodeproj/project.pbxproj";

        var proj = new PBXProject();
        var nativeTarget =
            proj.TargetGuidByName(PBXProject.GetUnityTargetName());
        var testTarget =
            proj.TargetGuidByName(PBXProject.GetUnityTestTargetName());
        string[] buildTargets = {nativeTarget, testTarget};

        proj.ReadFromString(File.ReadAllText(projPath));
        proj.SetBuildProperty(buildTargets, "ENABLE_BITCODE", "NO");
        File.WriteAllText(projPath, proj.WriteToString());
    }
Run Code Online (Sandbox Code Playgroud)

这是错误:

在此处输入图片说明

我已经尝试了多个测试方法签名,但似乎没有任何效果。我什至尝试了一种注销路径的方法。

附加信息:

  • 统一版本:5.3.1f
  • Unity 云构建:5.3.1f
  • 目标:iOS 8.0+

此外,我的云构建设置脚本根据需要位于编辑器文件夹中。

在此处输入图片说明

好的,所以我得到了 bitCode 禁用后期处理以使用以下代码,但仅当我手动构建时。当我从云构建构建时,应用程序在启动屏幕上没有错误地冻结。当我从本地机器构建时,应用程序运行得很好。

[PostProcessBuild]
public static void OnPostprocessBuild(BuildTarget buildTarget, string path)
{
    if (buildTarget == BuildTarget.iOS)
    {
        string projPath = path + "/Unity-iPhone.xcodeproj/project.pbxproj";
        PBXProject proj = new PBXProject();
        proj.ReadFromString(File.ReadAllText(projPath));

        string nativeTarget = proj.TargetGuidByName(PBXProject.GetUnityTargetName());
        string testTarget = proj.TargetGuidByName(PBXProject.GetUnityTestTargetName());
        string[] buildTargets = new string[]{nativeTarget, testTarget};

        proj.SetBuildProperty(buildTargets, "ENABLE_BITCODE", "NO");
        File.WriteAllText(projPath, proj.WriteToString());
    }
}
Run Code Online (Sandbox Code Playgroud)

zov*_*zov -1

事实上,OnPostprocessBuild 始终被调用,因此您不必在导出后方法字段中放置任何内容,该字段是为更具体的方法设计的。