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

Posted

技术标签:

【中文标题】Spritekit 应用程序在设备上运行时崩溃,在 swift 3 转换后在模拟器上工作【英文标题】:Spritekit app crashes when run on device, works on simulator after swift 3 conversion 【发布时间】:2016-10-08 19:23:43 【问题描述】:

在 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 都会在框架上移动到一半。我知道我超出了我的索引范围,看起来它在访问我的金属文件时遇到了问题?我只是不知道该怎么办。帮助表示赞赏!

【问题讨论】:

我建议清除派生数据以及从手机中删除应用程序,给自己一个干净的状态 @Knight0fDragon 这对我不起作用...这对你有用吗? 【参考方案1】:

这对我有用。我必须通过编辑方案来禁用金属验证(Command-Option-R)是到达那里的一种方法,转到选项选项卡。将 Metal API Validation 设置为 Disabled。

【讨论】:

【参考方案2】:

如果您使用的是 Xcode 测试版,那么最好在您的设备上运行相同的 ios 测试版,例如如果您使用 Xcode 公测版 2 制作应用,请在您的设备上安装 iOS 公测版 2。

【讨论】:

【参考方案3】:

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

【讨论】:

以上是关于Spritekit 应用程序在设备上运行时崩溃,在 swift 3 转换后在模拟器上工作的主要内容,如果未能解决你的问题,请参考以下文章

应用程序在启动时立即崩溃,仅在设备上

iPad 应用程序在设备上崩溃

为啥我的 iPhone 应用程序的发布版本在安装后第一次运行时会在设备上崩溃?

我的 android studio 项目在棒棒糖上运行良好,但在 kitkat 设备上测试时崩溃

在 Android Studio 中运行 AVD 时应用程序崩溃。我正在使用 API 27 在虚拟设备像素 5x 上运行

android 应用程序在 2.3 设备上运行,在 4.1 上崩溃(重新发布)