Xcode 6 iPhone 唯一的应用程序在 iPad 上崩溃

Posted

技术标签:

【中文标题】Xcode 6 iPhone 唯一的应用程序在 iPad 上崩溃【英文标题】:Xcode 6 iPhone only app crashing on iPad 【发布时间】:2014-10-01 03:45:01 【问题描述】:

我向 Apple 发送了一个带有 iPhone 专用设置的应用程序。相信我,我查看了所有设置以确保目标设备系列是 iPhone。然而,当我将应用程序发送给苹果时,他们拒绝了该应用程序,理由是:“我们发现您的应用程序在运行 ios 8 的 iPad 上崩溃,这不符合 App Store 审查指南。

当我们按下“播放”时,您的应用崩溃了。

这发生在您的应用在 Wi-Fi 上使用时。”

我理解为什么苹果会这样说,但同时我不知道。我在 iPad 上的模拟器上测试了这个应用,我在调试区遇到的错误是:

CUICatalog: Can't find rendition for name: mainMenuPicture scale factor: 2 device idiom: 2 device subtype: 0 SKTexture: Error loading image resource: "mainMenuPicture"

在 iPhone 上,所有 mainMenuPictures(在资产目录中)都可以正常工作。事实上,一切都会发生,除了在 iPad 上运行同一个应用程序时,会发生这种情况。在资产目录中,我只包括 iPhone 和 iPhone A4 屏幕类型(所以我的资产包括 1x、2x、3x 和 Retina 4 2x 图像)。这会是干扰吗?

请帮忙。谢谢!

编辑

这是带有崩溃日志的图片和发生时的代码。

这是资产目录,它适用于 iPhone 设备系列,但不适用于 iPad:

我尝试将textureWithImage: 重命名为textureWithImageNamed,它返回了一个空白图像并运行(但是还有更多错误)。这不是错误的最终原因。

【问题讨论】:

哦,在 iPad 上,即使出现“加载图像资源时出错”,图片也会加载。 您还应该在真正的 iPad 上测试您的应用程序。模拟器可能不会在真实设备上崩溃。发布版本在调试版本发生崩溃的情况下也可能发生崩溃。 你的评论,不是刻薄的,是错过了我的帖子的重点。模拟器在 iPad 上运行时确实会崩溃,因为我不认为它应该在 iPad 上运行。我发布了上面关于它为什么崩溃的错误。我可以验证这一点,因为事实上我已经在 iPhone(真实设备)上进行了测试,并且每个都有效,因此证明这是一个特定于设备的问题。 哦,我看错了你的帖子。所有 iPhone 应用程序都应该能够作为 iPhone 模拟应用程序在 iPad 上运行。您可以使用 App Store 中的任何应用程序对此进行测试。 - 关于您的崩溃 - 您能否提供更多信息,例如堆栈跟踪和/或崩溃的代码?图片必须加载到某个地方。 当然,我会在稍后编辑帖子以包含图片 【参考方案1】:

资产目录明确显示“iPhone”很奇怪。您可以在设置窗格中将其设置为“通用”,将图像分配给通用而不是 iPhone(不包括非通用的长 iPhone)并检查是否有帮助?

【讨论】:

再次感谢哈哈,终于让事情顺利进行让我很高兴!

以上是关于Xcode 6 iPhone 唯一的应用程序在 iPad 上崩溃的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 查看iPhone的(唯一标识)UDID

xcode 6.1 未加载正确的 iPhone 6 和 6+ 模拟器

Xcode 6 构建应用程序,但升级 iPhone 后不会在 iPhone 上自动启动

在 Xcode 6 中使用矢量图( iPhone 6 置配 UI)

在 Xcode 6.1、iPhone 6 plus、iPad 滑块黑屏

在 xcode 4.3 上添加 iphone sdk 6.1