iPod Touch 4G认为自己是iPad

4
我有一个通用应用程序,可以在iPad、iPhone 4G、3GS和3G上运行并完美工作,但在iPod Touch 4G上运行时无法正常运行。
我没有iPod Touch来测试,但一位测试人员告诉我它可以成功安装到设备上,但当运行时,启动时会显示来自iPad版本的Default.png被压缩到屏幕中,然后就一直黑屏。当使用应用程序切换器强制退出应用程序并重新启动时,它会再次出现相同的问题。
我已经双重检查了目标设备族为iPhone/iPad,并进行了清理构建等操作,但仍然无法解决问题。

没有任何提示。这促使我去寻找答案,见下文。 - Domestic Cat
4个回答

8
经过一些试错之后,我找出了问题所在(实际上是两个不同但相关的问题):
在我的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启动图像,但我还没有尝试过。

0
确保正确命名Default.png
  • Default.png(默认)
  • Default~iphone.png(iPhone或iPod touch)
  • Default~ipad.png(iPad)

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


是的,我已经做过了。在iPhone / 模拟器上运行良好,但iPod Touch上无法运行。此外,不仅是Default.png,整个应用程序都无法运行。 - Domestic Cat

0

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

请确保在InterfaceBuilder中,主窗口的属性(visibleAtLaunch)已被选中。

有时如果没有被选中,它会显示黑屏。


0

目前有一种越狱技术,可以使用一些iPad固件安装在iPhone或iPod Touch上。理论上它不应该影响任何东西,但我自己从未尝试过,所以无法保证。您可以询问此测试人员是否在越狱设备上,并在非越狱设备上尝试。


2
如果是这样,我很高兴为越狱设备解除支持,并拒绝欢迎越狱设备的测试人员。这并不意味着 OP 应该做同样的事情;他可能想要修复崩溃问题... - BoltClock
不,我刚刚检查过了,没有越狱。这是在从 Apple Store 直接购买的全新设备上运行的。 - Domestic Cat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接