管理两个设备特定的应用程序

时间:2011-02-15 18:43:28

标签: iphone xcode ipad ios

我有一个应用程序已经发布并且在应用程序商店中。我们现在正在开发该应用程序的iPad版本,但我们并未将其作为通用应用程序发布,因为iPad版本具有许多不同的功能,不会移植回iPhone应用程序。我们的客户还希望该应用程序在不同的SKU下发布。

我在Xcode中将我的iPhone目标升级到iPad并选择了“两个特定于设备的应用程序”,但我遇到了在iPad上运行iPhone应用程序的问题。

该应用程序在iPad上的iPhone模拟器中加载但随后因此错误而崩溃:

由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'无法在包中加载NIB:'NSBundle(已加载)',名称为“MainWindow-iPad”

在Info.plist中,我指定了2个不同的XIB文件作为iPhone和iPad的主nib文件。问题是iPhone应用程序加载到iPad时,正试图加载MainWindow-iPad.xib而不是iPhone特定的MainWindow.xib。

我认为运行两个特定于设备的应用程序的好处是两个应用程序之间代码共享的简易性,但如果由于此窗口问题我无法在模拟器中在iPad上运行iPhone版本,我就是有点不走运。

任何帮助都会很棒!

1 个答案:

答案 0 :(得分:2)

听起来二进制文件认为您正在运行通用应用程序。尝试使用单独的info.plist文件,每个文件只包含您希望该设备使用的xib文件。您可能还需要有两个单独的目标,每个设备一个,如果您还没有。

此外,这可能会有助http://cluebucket.com/blog/2010/12/30/universal-apps-ipod-touch/