问题:

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



这是我的代码:

 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());
    }

这是错误:

c# - Unity 云构建 : post export method-LMLPHP

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

附加信息:
  • Unity 版本:5.3.1f
  • Unity 云构建:5.3.1f
  • 目标:iOS 8.0+

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

    c# - Unity 云构建 : post export method-LMLPHP

    好的,所以我得到了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());
        }
    }
    

    最佳答案

    启动后我也遇到了同样的问题“闪屏卡住”....
    我解决了这个问题。请使用以下代码。
    在 Unity 5.4.1p2 和 Xcode 7.3 中测试。

    using UnityEngine;
    using System.Collections;
    using UnityEditor;
    using System.IO;
    using UnityEditor.Callbacks;
    #if UNITY_IOS
    using UnityEditor.iOS.Xcode;
    #endif
    
    public class Postprocessor : AssetPostprocessor
    {
    #if UNITY_IOS
        [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 target = proj.TargetGuidByName("Unity-iPhone");
    
                proj.SetBuildProperty(target, "ENABLE_BITCODE", "false");
    
                File.WriteAllText(projPath, proj.WriteToString());
    
    
    
                // Add url schema to plist file
                string plistPath = path + "/Info.plist";
                PlistDocument plist = new PlistDocument();
                plist.ReadFromString(File.ReadAllText(plistPath));
    
                // Get root
                PlistElementDict rootDict = plist.root;
                rootDict.SetBoolean("UIRequiresFullScreen",true);
                plist.WriteToFile(plistPath);
            }
        }
    #endif
    }
    

    关于c# - Unity 云构建 : post export method,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35210801/

    10-12 16:57
    查看更多