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

Unity3D Game Crashes in Xcode 9 - iOS 11

今天我在 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)'

相同的代码与 Xcode 8.3.3 iOS 10.

完美配合

如何修复 Xcode 9 中的崩溃?


UPDATES_SOLUTION :

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

错误中的MTLTextureUsageRenderTarget说明这是苹果的Metal问题。

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

你有三个选择:

1.在 Xcode

中禁用 Metal API 验证

2。使用 OpenGLES 而不是 Metal。

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

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