【问题标题】:Sprite Kit app crashes when run on real device and plugged into computerSprite Kit 应用程序在真实设备上运行并插入计算机时崩溃
【发布时间】:2016-09-15 20:33:14
【问题描述】:

我刚刚在我的测试手机和 Xcode 8 上更新到 iOS 10。我运行了代码迁移并在我的模拟设备上成功运行了测试。

但是,一旦我开始尝试在我的真实设备上进行测试,事情就停止了顺利运行。运行我的 Sprite Kit 游戏大约 5 到 10 秒后,它会崩溃并使手机无法操作,直到我将其从计算机上拔下。拔掉电源后,游戏运行正常,还是很流畅的。

这是打印到控制台的启动通知:

2016-09-15 22:20:49.490959 AppName[411:38688] [DYMTLInitPlatform] platform initialization successful
2016-09-15 22:20:49.684189 AppName[411:38634] Metal GPU Frame Capture Enabled
2016-09-15 22:20:49.684758 AppName[411:38634] 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(480) * 2) must be <= [indexBuffer length](960).'
(lldb) 

【问题讨论】:

  • 你做了干净的构建
  • 你超出了你的缓冲区(我假设你没有正确访问金属,精灵套件正在这样做)

标签: ios iphone sprite-kit ios10 xcode8


【解决方案1】:

尝试通过编辑方案来禁用 Metal 验证:

  1. (Command-Option-R)
  2. 转到“选项”选项卡。
  3. 将 Metal API 验证设置为已禁用。

这对我有用...

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:
      • Command-Option-R
      • “等待可执行文件启动”
      • 手动运行

      不时为我工作。

      【讨论】:

        猜你喜欢
        • 2023-04-01
        • 2017-10-12
        • 2015-01-25
        • 1970-01-01
        • 2022-10-02
        • 1970-01-01
        • 2022-01-17
        • 2015-07-26
        相关资源
        最近更新 更多