我正在为iPhone / iPad做一个通用二进制项目。我创建了iPhone应用程序端 我也在努力完成iPad。我注意到有一件事,在我使用UIPopoverController类的iPad类上,意味着当我在模拟器中为3.2构建时,它运行一台iPad并且它工作正常,但如果我想看到iPhone版应用程序,则意味着3.1。 3,它给我一个iPad类错误的框架错误。
我不知道如何解决这个问题,因为我不能再看到应用程序的iPhone版本并进行更改。我只能删除所有的iPad类,然后再次重新导入。
谢谢你们!
答案 0 :(得分:2)
使用3.2 SDK,模拟器只能作为iPad运行。
如果要测试iPhone端,则必须在预处理器条件中包装3.2特定代码,以便使用3.1.3进行编译。
如果您有设备,则应该能够使用3.2 SDK编译iPad和iPhone版本,方法是在目标的构建设置中设置“部署目标”设置。 将其设置为您愿意支持的最低版本的iPhone OS,例如3.1.3并使用3.2进行编译。您还需要针对任何新的3.2框架“弱链接”,例如Core Text。
最后,如果你还没有,你应该使用运行时检查来确保你的iPhone版本不会尝试使用任何3.2功能,例如popovers。
这样,你就不必删除你的popover引用,你应该能够编译。但是,正如我所说的,只有在您拥有要测试的物理设备时,这才有用。
如果要使用模拟器,则必须遵循预处理器条件方法。
答案 1 :(得分:0)
您只能使用3.2 Base SDK和iPhone OS部署目标3.1.3(或更早版本)构建。执行此操作时,模拟器将仅运行3.2 / iPad。就是这样。
因此,您需要在实际设备上进行iPhone测试。