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)
这是错误:
我已经尝试了多个测试方法签名,但似乎没有任何效果。我什至尝试了一种注销路径的方法。
附加信息:
此外,我的云构建设置脚本根据需要位于编辑器文件夹中。
好的,所以我得到了 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)
| 归档时间: |
|
| 查看次数: |
2393 次 |
| 最近记录: |