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 转换后在模拟器上工作的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的 iPhone 应用程序的发布版本在安装后第一次运行时会在设备上崩溃?
我的 android studio 项目在棒棒糖上运行良好,但在 kitkat 设备上测试时崩溃
在 Android Studio 中运行 AVD 时应用程序崩溃。我正在使用 API 27 在虚拟设备像素 5x 上运行