gpt4 book ai didi

ios - 从命令行运行时,Unity PostProcess 构建脚本失败

转载 作者:行者123 更新时间:2023-11-29 11:30:39 24 4
gpt4 key购买 nike

我正在尝试从针对 iOS 的命令行构建我的项目。当我从编辑器中构建它时,一切正常!我有一个我使用的 PostProcess 构建脚本。

当我尝试使用以下命令构建命令行时:/Applications/Unity/Unity.app/Contents/MacOS/Unity -quit -batchmode -executeMethod BuildScript.BuildIOS -nographics -buildTarget iOS

我从我的 PostProcess 构建脚本中收到一条错误消息:Assets/Editor/MyBuildPostprocessor.cs(9,23):错误 CS0234:命名空间中不存在类型或命名空间名称 Xcode'UnityEditor.iOS'。您是否缺少程序集引用?

产生错误的行是一个简单的 using 子句:

using UnityEditor.iOS.Xcode;

所以似乎由于某种原因,命令行构建机制无法识别 UnityEditor.iOS.Xcode 程序集,并且我的 PostProcess 构建脚本无法运行。

有什么想法吗?

最佳答案

这是一个已知的案例,当 iOS 项目在 Unity 中手动构建时没有错误并且在构建服务器(Unity 云、Jenkins、TeamCity 等)上构建失败。我认为你的情况与此类似。因为如果你看一下构建 Unity 应用程序的构建服务器过程,你会发现它也使用命令行命令

/Applications/Unity/Unity.app/Contents/MacOS/Unity -quit -batchmode -executeMethod BuildScript.BuildIOS -nographics -buildTarget iOS

至于构建服务器问题,解决方案是将所有后处理脚本放在 #if UNITY_IOS 条件中。并且您可能误解了所收到的错误。 Unity 说它在尝试将后处理脚本包含在构建中时不理解 XCode 命名空间。当然,Unity 不能包含 XCode 命名空间,因为它仅在 Unity 编辑器中可用。

因此,请尝试在后处理源代码的开头添加 #if UNITY_IOS,甚至在使用 section 之前,并在源代码的末尾添加 #endif。在这种情况下,Unity 不会在构建阶段编译后处理脚本,但会在创建 XCode 项目后调用您的后处理脚本。

不幸的是,我找不到任何关于手动构建过程和命令行构建过程不同的信息。

关于ios - 从命令行运行时,Unity PostProcess 构建脚本失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53920071/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com