今天我在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验证。这个修复崩溃。
答案 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。
3 。如果#1 且#2 失败,请更新Unity到最新版本的Unity。如果您更新Unity并且问题仍然存在,那么您可以从编辑器提交错误报告。如果你更新Unity,我希望这个问题不复存在。