【问题标题】:iPod Touch 4G thinks it's an iPadiPod Touch 4G 认为它是 iPad
【发布时间】:2011-05-27 10:51:47
【问题描述】:

我有一个通用应用程序,可以在 iPad、iPhone 4G、3GS 和 3G 上完美运行,但在 iPod Touch 4G 上运行时无法正常运行。

我没有要测试的 iPod Touch,但是 beta 测试人员告诉我,它可以很好地安装在设备上,但是在运行时它会显示 iPad 版本的应用程序中的 Default.png 被压缩到启动时屏幕,然后从那里变黑。当应用程序被强制退出(使用应用程序切换器)并重新启动时,它会再次执行相同的操作。

我已经仔细检查了目标设备系列是 iPhone/iPad 并完成了干净的构建等,但仍然没有骰子。

【问题讨论】:

  • 什么都没有。这促使我找到答案,见下文

标签: iphone ipod-touch universal-binary


【解决方案1】:

确保Default.pngs 的名称正确:

  • Default.png(默认)
  • Default~iphone.png(iPhone 或 iPod touch)
  • Default~ipad.png (iPad)

对于 iPad 资源,您还可以为每个方向指定某些默认 PNG。

【讨论】:

  • 是的,已经做到了。它在 iPhone/模拟器上运行良好,但不是 iPod Touch。此外,不仅是 Default.png,整个应用程序本身都拒绝运行
【解决方案2】:

我不确定它是否会起作用,但它可能会对你有所帮助。

确保在 InterfaceBuilder 中,检查了主窗口中的属性(visibleAtLaunch)。

有些时候如果不勾选就会显示黑屏。

【讨论】:

    【解决方案3】:

    目前有一种越狱技术,它使用一些 iPad 固件安装在 iPhone 或 iPod Touch 上。理论上它不应该影响任何事情,但我自己从来没有做过,所以我不能保证。您可能会询问此测试器是否在越狱设备上,如果是,请在未越狱设备上尝试。

    【讨论】:

    • 如果是这样,我很高兴我免除对越狱设备的支持,并拒绝欢迎使用越狱设备的 beta 测试人员。这并不是说 OP 也应该这样做。他可能想要修复崩溃...
    • 不,只是检查了没有越狱。它直接来自 Apple Store 的一款完全普通的设备。
    【解决方案4】:

    所以经过反复试验,我找出了问题所在(实际上是两个独立但相关的问题):

    在我的info.plist 中,我使用两个键来分配不同的 MainWindow 文件:

    Main nib file base name (iPad)

    Main nib file base name (iPhone)

    我错误地认为第二个键也适用于 iPod Touch,因为没有 Main nib file base name (iPodTouch) 键。事实证明这是错误的,iPod Touch 实际上会寻找Main nib file base name 键。所以现在我有这样的设置:

    ..它在 3.1.3 和 4.2 中运行良好。 (请注意,如果设备找不到要使用的 MainWindow,则不会调用 application:didFinishLaunchingWithOptions,这就是我解决问题的方法。

    我怀疑这同样适用于Launch image (iPad)Launch image (iPhone)Launch image 键,这可以解释为什么 iPod Touch 使用 iPad 启动图像但还不能尝试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-06
      • 2012-05-02
      • 1970-01-01
      • 1970-01-01
      • 2011-08-31
      • 2011-11-09
      • 1970-01-01
      相关资源
      最近更新 更多