Ios Spritekit应用程序在设备上运行时崩溃,在swift 3转换后在模拟器上工作

Ios Spritekit应用程序在设备上运行时崩溃,在swift 3转换后在模拟器上工作,ios,sprite-kit,swift3,Ios,Sprite Kit,Swift3,在swift 3转换之前,我的应用程序曾在设备上运行。它仍然在模拟器上工作。游戏加载到设备上,然后在5-6秒后崩溃 运行10.12.1 Beta 16B2333a,设备:10.0.2 错误: Metal API Validation Enabled/BuildRoot/Library/Caches/com.apple.xbs/Sources/Metal/Metal-85.83/ToolsLayers/Debug/MTLDebugRenderCommandEncoder.mm:130: faile

在swift 3转换之前,我的应用程序曾在设备上运行。它仍然在模拟器上工作。游戏加载到设备上,然后在5-6秒后崩溃

运行10.12.1 Beta 16B2333a,设备:10.0.2

错误:

Metal API Validation Enabled/BuildRoot/Library/Caches/com.apple.xbs/Sources/Metal/Metal-85.83/ToolsLayers/Debug/MTLDebugRenderCommandEncoder.mm:130: failed assertion `indexBufferOffset(12) + (indexCount(372) * 2) must be <= [indexBuffer length](240).

无论我的精灵是否在移动,障碍物。sks都会在碰撞前到达画面的一半。我知道我超出了我的索引范围,看起来它在到达我的金属文件时遇到了问题?我只是不知道该怎么办。谢谢你的帮助

如果您使用的是Xcode beta版,那么最好在您的设备上运行相同的iOS beta版。例如,如果您使用Xcode public beta 2制作应用程序,则在您的设备上安装iOS public beta 2。

如果您使用的是Xcode beta版,然后最好在您的设备上运行相同的iOS测试版,例如,如果您正在使用Xcode public beta 2制作应用程序,那么请在您的设备上安装iOS public beta 2。

这对我很有效。我必须通过编辑方案来禁用金属验证命令-Option-R是一种方法,请转到选项选项卡。将金属API验证设置为禁用。

这对我来说很有效。我必须通过编辑方案来禁用金属验证命令-Option-R是一种方法,请转到选项选项卡。将Metal API验证设置为禁用。

我可以解决此问题,取消选中方案中的调试可执行文件

我可以解决这个问题,取消选中方案中的调试可执行文件

我建议清除衍生数据并从手机中删除应用程序,给自己一个干净的slate@Knight0fDragon这对我不起作用。。。这对你有用吗?我建议清除衍生数据以及从手机中删除应用程序,给自己一个干净的环境slate@Knight0fDragon这对我不起作用。。。这对你有用吗?