是否有全球方式将iPhone和iPad应用程序合并到通用应用程序中?

时间:2011-03-12 03:45:47

标签: iphone ipad universal

我写了一个iPhone应用程序。然后,我更改了界面,添加了更高分辨率的图像,并制作了iPad版本。在一个完美的世界里,我想任何购买iPad版本的人都可以免费获得iPhone版本(尽管不是相反)。由于Apple似乎没有办法做到这一点(对吗?),我的下一个最喜欢的解决方案是让iPad版本包含iPhone版本。

我知道我可以将iPad版本转换为“通用”,但由于应用程序的外观如此不同,这似乎是一种真正的痛苦。我有很多视图控制器,它们在两个版本之间几乎完全不同。有些方法是相同的,但只有约30%。是否有一个简单的解决方案:

  • 检查设备是iPhone还是iPad

    • 如果是iPhone,则使用一组文件

    • 如果是iPad,则使用不同的文件组

提前致谢!

2 个答案:

答案 0 :(得分:2)

尝试在Xcode中创建一个新项目,然后选择将其设为通用应用。在Xcode的默认方式中,iPad和iPhone版本之间存在明显的差异。您可以根据需要将应用的两个版本设置为相似或不同。

此外,您可以使用UI_USER_INTERFACE_IDIOM()检查运行时正在运行的设备。目前,这两个值为UIUserInterfaceIdiomPadUIUserInterfaceIdiomPhone

答案 1 :(得分:0)

您描述的“简单解决方案”基本上是iOS加载通用应用程序的方式。

没有其他真正的方法。你必须再将两个项目合并为一个,以做你想做的事。

第一个问题是一些(很多?)类的名称在两个项目之间都是通用的。在将它们合并在一起之前,使用Xcode中的“Refactor ...”功能来更改一个项目中的类名称(例如,您的iPhone应用程序,因为它更旧),您可以省去一些痛苦。第二个问题是你的Info.plist;您需要确保将正确的“主nib文件基本名称”,正确支持的界面方向,图标文件等分别设置为正确的iPad和iPhone值。

相关问题