4

我正在使用 iOS 5.0 SDK 在 Unity 3.4.2f、XCode 版本 4.2.1 中进行开发。

我的游戏由一个主菜单和一个加载主场景的播放按钮组成。该游戏可以由同事构建到设备上并且运行良好。每当构建游戏时,它会在加载第二个场景时崩溃。一个多星期以来,这一直是我存在的祸根。

设备的崩溃日志如下所示:

    Exception Type:  EXC_BAD_ACCESS (SIGILL)
    Exception Codes: KERN_PROTECTION_FAILURE at 0x00ed4e90
    Crashed Thread:  0

    Thread 0 name:  Dispatch queue: com.apple.main-thread
    Thread 0 Crashed:
    0   ???                             0x050000c0 0 + 83886272
    1   ???                             0xfffffff8 0 + -8

    Thread 1 name:  Dispatch queue: com.apple.libdispatch-manager
    Thread 1:
    0   libsystem_kernel.dylib          0x33babfbc kevent + 24
    1   libdispatch.dylib               0x328ebed4 _dispatch_mgr_invoke + 744
    2   libdispatch.dylib               0x328ecf3a _dispatch_queue_invoke + 70
    3   libdispatch.dylib               0x328ec4ec _dispatch_worker_thread2 + 228
    4   libsystem_c.dylib               0x3489f58a _pthread_wqthread + 258
    5   libsystem_c.dylib               0x3489fbbc start_wqthread + 0

    *Note: Removed various other non-crashed threads through thread 11*

    Thread 0 crashed with ARM Thread State:
    r0: 0x01ab7094    r1: 0x00000000      r2: 0x00000000      r3: 0x3f800000
    r4: 0x04020000    r5: 0x3987cc80      r6: 0x01004d08      r7: 0x080000c1
    r8: 0xc1080000    r9: 0x00000000     r10: 0xc1050000     r11: 0xc1040000
    ip: 0x2fdfe144    sp: 0x00ed4e9c      lr: 0x00dfc558      pc: 0x050000c0
    cpsr: 0x20000030

哪个不是最有帮助的,但是从我在这里和其他各种网站上阅读的内容来看,我应该能够使用像 0x050000c0 这样的内存地址来确定我在实际代码中崩溃的位置?首先是我们尝试过的其他一些事情......

该项目位于 SVN 存储库中,所以我已经删除了整个源目录并从 SVN 重新更新它,确保可以正确构建的同事也做了同样的事情。当这不起作用时,我让他向我发送他的 xcode 项目的 .zip 文件,以尝试构建它,但 Prime31 Unity 插件不喜欢那样,它们指向他的源文件夹,该文件夹位于不同的用户目录中他的机器。所以我让他压缩他的统一源并发送,这需要重新安装 Prime31 插件,然后我能够构建,但仍然得到相同的结果。在场景加载之间崩溃。

我们都使用完全相同的物理 iPad 设备进行构建。我们都针对 iOS 5.0 构建,而设备是 4.3.3。

我已经删除了所有 xcode 设置,然后从我的 Mac 中删除了整个 /Developer 文件夹并完全重新安装了 xcode。结果相同。我会尝试重新安装 Unity,但我不确定是否需要停用 Unity Pro 密钥然后重新激活?

我花了太多时间来让这件事变得复杂而困难。我知道这肯定是我无法理解的简单和愚蠢的事情,但我不再只见树木不见森林,所以我问你,亲爱的互联网!

4

1 回答 1

1

解决!我把这篇文章链接到一个朋友,他问:“你确定你们都在同一个统一版本上吗?” 我查了一下,实际上我使用的是 Unity 版本 3.4.1f 而不是 3.4.2f。更新了 Unity,一切都很好。大概是这些 Prime31 插件的最新版本不喜欢旧版本的 Unity 吧?

于 2012-02-21T00:06:15.327 回答