【发布时间】:2011-02-15 18:43:28
【问题描述】:
我有一个已发布并在应用商店中的应用。我们现在正在开发该应用程序的 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 版本,我会有点不走运。
任何帮助都会很棒!
【问题讨论】: