我有一个通用的应用程序,可以在iPad,iPhone 4G,3GS和3G上运行并完美运行,但是当在iPod Touch 4G上运行时,它将无法正常运行。
我没有iPod Touch进行测试,但测试人员告诉我,它在设备上安装得很好,但是在运行时会显示应用的iPad版本中的Default.png在启动时被压缩到屏幕上,然后从那里变黑。当应用程序强行退出(使用应用程序切换器)并重新启动时,它会再次执行相同的操作。
我已经仔细检查了目标设备系列是iPhone / iPad并完成了干净的构建等,但仍然没有骰子。
经过一些试验和错误后,我找出了问题所在(实际上是两个独立但相关的问题):
在我的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发布图像,但还没有尝试过。
确保Default.png
s正确命名:
Default.png
(默认)Default~iphone.png
(iPhone或iPod touch)Default~ipad.png
(iPad)对于iPad资源,您还可以为每个方向指定某些默认PNG。
目前有一种越狱技术,它使用一些iPad固件安装在iPhone或iPod Touch上。理论上它不应该影响任何东西,但我自己从来没有做过,所以我不能保证这一点。您可能会问这个测试仪是否在越狱设备上,如果是这样,请尝试使用非越狱设备。
我不确定它会起作用,但它可能对你有帮助。
确保在InterfaceBuilder中检查主窗口中的属性(visibleAtLaunch)。
有时如果没有检查,那么它将显示黑屏。