【问题标题】:Unity3D Game Crashes in Xcode 9 - iOS 11Xcode 9 - iOS 11 中的 Unity3D 游戏崩溃
【发布时间】:2018-03-01 14:00:25
【问题描述】:

今天我在运行 iOS 11 的 iPhone 6 和 Xcode 9 中启动了完整的 Unity3D 游戏。它在启动时崩溃了。

每次在同一个函数中崩溃:SetupMetalFBO

这是控制台日志:

validateRenderPassDescriptor:487: failed assertion `Texture at colorAttachment[0] has usage (0x01) which doesn't specify MTLTextureUsageRenderTarget (0x04)'

相同的代码在 Xcode 8.3.3 iOS 10 上完美运行。

如何修复 Xcode 9 中的崩溃问题?


UPDATES_SOLUTION

解决方案很简单,只需转到 Xcode->Product->Scheme->Edit Scheme,禁用 Metal API Validation。此修复崩溃。

【问题讨论】:

    标签: iphone xcode unity3d ios11 xcode9


    【解决方案1】:

    错误中的MTLTextureUsageRenderTarget 表明这是Apple 的Metal 问题。

    Unity 4.6.9 在 iOS 11 上运行已经非常老了,并且不再修补以修复 iOS 等平台上的问题。您还应该担心您的最新应用会因为 IPv6 兼容问题而被应用商店拒绝。

    您有三个选择:

    1.在 Xcode 中禁用 Metal API 验证

    2。使用 OpenGLES 而不是 Metal。

    首先,禁用 Auto Graphics API,然后在 Unity 的 Player Settings 中将 iOS Graphics API 更改为 OpenGLES2 或 OpenGLES3。

    3。如果 #1#2 失败,请将 Unity 更新到最新版本的 Unity。如果您更新 Unity 并且问题仍然存在,那么您可以向编辑器提交错误报告。如果您更新 Unity,我希望这个问题会消失。

    【讨论】:

    • 一件好事是,当我将 ipa 存档,然后将其安装到设备时,它就可以完美运行。所以苹果可能会批准..让我尽快检查您的解决方案。
    • 我见过很多人因为 IPv6 问题而被拒绝,即使他们在设备上工作也是如此。这取决于您使用哪个 API,或者 Unity 决定修补 4.6 版本以修复 Apple 拒绝问题。
    • 解决方案 1 有效。我刚刚在 Xcode 中禁用了 Metal API Validation。非常感谢您的快速回答。
    • IPv6问题意味着什么?上周我的 Unity3D 4.6.9 游戏获得批准..用 Xcode 8.3.3 上传
    • thisthis。不要担心您的应用是否被接受。很高兴我能提供帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-01
    相关资源
    最近更新 更多