2010-12-18 44 views
4

我有一个通用的应用程序,它可以在iPad,iPhone 4G,3GS & 3G上运行并完美运行,但是在iPod Touch 4G上运行时它将无法正常运行。iPod Touch 4G认为这是一个iPad

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

我已经双重检查了目标设备系列是iPhone/iPad,并做了一个干净的构建等,但仍然没有骰子。

+0

任何日志输出? – 2010-12-18 02:45:45

+0

什么也没有。这促使我找到答案,见下面 – 2010-12-20 22:11:27

回答

8

所以一些试验和错误后,我摸索出什么问题了(实际上是两个独立但相关的问题):

在我info.plist我用两个键来分配不同的主窗口文件:

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键。所以,现在我把它设置是这样的:

alt text

..和它在3.1.3 & 4.2工作正常。 (请注意,如果设备找不到要使用的MainWindow,则不会调用application:didFinishLaunchingWithOptions,这就是我解决问题的方式)。

我怀疑这同样适用于Launch image (iPad)Launch image (iPhone)Launch image键,这将为什么iPod Touch上使用iPad的推出图像,但一直没能尝试它尚未解释。

0

确保Default.png s的正确命名:

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

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

+0

是的,已经做到了这一点。它在iPhones /模拟器上正常工作,只是不是iPod Touch。此外,它不仅仅是Default.png,整个应用程序本身拒绝运行 – 2010-12-18 02:44:40

0

我不确定它会工作,但它可以帮助你。

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

有些时候,如果它没有检查,那么它会显示黑屏。

0

目前有一种越狱技术,它使用一些iPad固件在iPhone或iPod Touch上进行安装。理论上它不应该影响任何事情,但我从来没有做过,所以我不能担保。您可能会问这台测试仪是否在越狱设备上,如果是的话,尝试使用非越狱设备。

+2

如果是这样,我很高兴我免除支持越狱设备并拒绝使用越狱设备的beta测试者。这并不是说OP应该这样做;他可能想修复崩溃,而不是... – BoltClock 2010-12-18 06:08:41

+0

不,只是检查没有越狱。它直接来自Apple Store上的完全香草设备。 – 2010-12-20 21:00:14