Unity3D游戏在Xcode 9和iOS 11上崩溃

6

今天我在Xcode 9上运行iOS 11的iPhone 6中启动了一个完全工作的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中的崩溃?


更新解决方案

解决方案很简单,只需要进入Xcode->Product->Scheme->Edit Scheme,禁用Metal API Validation。这样就可以避免崩溃了。 enter image description here

1个回答

4

MTLTextureUsageRenderTarget 的错误提示表明这是一个苹果的Metal问题。

Unity 4.6.9在iOS 11上的使用非常老旧,已经不再修补像iOS这样的平台上的问题。您还应该担心您的最新应用程序因IPv6兼容性问题而被App Store拒绝。

您有三个选项:

1、在Xcode中禁用Metal API验证。

2、使用OpenGLES代替Metal。

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

enter image description here

3.如果#1#2无法解决问题,请更新Unity到最新版本。如果您更新了Unity仍然存在问题,则可以从编辑器中提交错误报告。我希望通过更新Unity来解决此问题。


一个好的事情是,当我存档ipa并将其安装到设备上时,它能够完美运行。所以苹果可能会批准这个...让我很快检查您的解决方案。 - Guru
我曾看到许多因IPv6问题而被拒绝的应用,即使它们在设备上可以正常工作。这取决于您使用哪个API,或者可能是Unity决定修补4.6版本以解决苹果拒绝问题。 - Programmer
方案1有效。我只是在Xcode中禁用了Metal API验证。非常感谢您的快速回答。 - Guru
IPv6问题是什么意思?上周我的Unity3D 4.6.9游戏已经通过审核了..使用Xcode 8.3.3上传。 - Guru
1
请查看此链接此链接,不用担心您的应用是否被接受。很高兴我能够帮助到您。 - Programmer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接