Unity3D游戏在Xcode 9中崩溃 - iOS 11

时间:2017-09-20 13:21:03

标签: iphone xcode unity3d ios11 xcode9

今天我在Xcode 9,iPhone 6运行iOS 11上推出了全面运作的Unity3D游戏。它在发布时崩溃了。

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

这是控制台日志:

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

enter image description here

相同的代码与Xcode 8.3.3 iOS 10完美配合。

如何修复Xcode 9中的崩溃?

UPDATES_SOLUTION

解决方案很简单,只需转到Xcode-> Product-> Scheme-> Edit Scheme,禁用Metal API验证。这个修复崩溃。 enter image description here

1 个答案:

答案 0 :(得分:3)

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

Unity 4.6.9在iOS 11上工作非常老,不再修补以修复iOS等平台上的问题。您还应该担心,由于IPv6兼容问题,您的最新应用会被应用商店拒绝。

您有三种选择:

1 .Xcode中的禁用金属API验证

2 。使用OpenGLES代替Metal。

首先,禁用Auto Graphics API,然后在Unity的播放器设置中将iOS Graphics API更改为OpenGLES2或OpenGLES3。

enter image description here

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