什么会导致 iPad(第 3 代)在启动时崩溃但在模拟器中工作?

Posted

技术标签:

【中文标题】什么会导致 iPad(第 3 代)在启动时崩溃但在模拟器中工作?【英文标题】:What will cause an iPad (3rd gen) to crash on launch but work in the simulator? 【发布时间】:2012-06-28 20:57:06 【问题描述】:

我收到了来自 Apple 的拒绝消息。

我们发现该应用在 iPad(第 3 代)上启动时退出

我已经在第一代和第二代 iPad 上测试了我的 iPhone 应用程序,没有任何问题,并在视网膜模式下使用模拟器测试了第三代 iPad。 Apple 没有向我提供崩溃日志,所以在我去另一台测试设备上花更多钱之前,这是我的问题。

是否有要检查的项目列表,这些项目已知会导致设备崩溃但在模拟器中工作?可能是视网膜分辨率下的@2x 图形?

【问题讨论】:

也许不是设备,而是操作系统。您的任何(旧)iPad 是否运行最新的操作系统? (5.1) 我认为这与 2x 图形无关。您的应用是包含这些,还是仅重复使用 1x 个? 感谢您的回复。我的 iPad 2 运行的是 5.1,现在运行的是 5.1.1,没有任何问题。目前使用的是 1x 版本,在设备和 sim 上运行良好。 在你拿到 iPad 3 之前,你可能无法确定……还有其他人吗? 【参考方案1】:

真实设备和模拟器之间的一些不同之处:

    设备内存减少; iPad 3 将使用@2x 图像,因此与 iPad 1/2 相比,它将使用双倍的图像内存;

    设备速度较慢(OpenGL 和其他经过优化的图形任务除外):在启动时,应用程序有最多 5 秒的时间来完成applicationDidFinishLaunching,否则将被杀死;

    设备文件系统区分大小写:如果您使用不区分大小写的名称引用资源,设备会报错。

当然还有更多。此外,模拟器和设备之间存在普遍差异,因此您不能完全信任模拟器,但我理解这对您没有帮助。

希望对你有帮助。

【讨论】:

伟大的塞尔吉奥名单。这至少给了我看的地方。 所有优点,但他确实在真实设备(iPad 1 和 2)上进行了测试。也许第 1 点(记忆)是一个线索。关于#2,根据我的经验,模拟器通常更快包括 OpenGL(除非你做了一些真正针对设备GPU并且在桌面上效率非常低的东西)大部分时间是关于原始力量。 @ranReloaded:关于第 2 点和第 3 点你是对的,我只是处于头脑风暴模式... :-) 关于性能,我向你保证,我的 MacBook Pro 上的模拟器比iPad 1 在执行 Open GL 时...但您是对的,这取决于您在其上运行模拟器的硬件... 在我的例子中,2011 21 英寸 iMac 围绕 Retina iPod Touch 运行

以上是关于什么会导致 iPad(第 3 代)在启动时崩溃但在模拟器中工作?的主要内容,如果未能解决你的问题,请参考以下文章

CoreData iPad 应用程序崩溃

需要帮助:“错误的架构”导致应用在 iOS 7 中启动时崩溃,但在 iOS 8 中运行良好

CATiledLayer 在 iPad 第 3 代放大时被移除和刷新

使用 Hammer.js 时移动 Safari 崩溃

Javascript .Focus 导致 safari 8.1.3 仅在 iPad 上崩溃

应用程序在 iPad 设备上崩溃但在模拟器上运行