iOS开发:如何防止iPad在iPad模式下运行通用应用程序?

Bea*_*red 16 iphone universal-binary ipad ios

我正在深入iOS开发,我创建了一个通用应用程序,变成了一个仅限iPhone的应用程序.当它在iPad上运行时,它只会加载一个白色屏幕,因为还没有写入iPad代码.我想要的是它在iPad上以"iPhone"模式运行,如果它以某种方式最终在iPad上运行.我将"目标设备系列"属性设置为"iPhone",这样可以防止它作为iPad应用程序在App Store中显示,但如果有人同时拥有iPad和iPhone,那么该应用程序最终可能会同步在iPad上,它只会加载白色屏幕,因为它会尝试在iPad模式下运行应用程序,它没有任何支持的代码.在这种情况下,我更喜欢它实际上在iPad上运行,但在iPhone模式下.

我的问题是......

  1. 当iPad运行通用应用程序时,如何知道在"iPhone模式"下运行它还是执行iPad特定代码?
  2. 在通用应用程序中,它如何知道哪些代码是iPhone以及哪些代码是iPad?
  3. 如何防止iPad试图运行iPad代码,而是运行iPhone代码?

如果我听起来像一个总菜鸟,我道歉,但我是.非常感谢你的智慧!

Tom*_*mmy 15

  1. iPad会查看应用程序的Info.plist,其中包含UIDeviceFamily键,它是一个数组.值"1"表示iPhone/iPod Touch,"2"表示"iPad".如果有一个'1'但没有'2'那么你会得到模拟的iPhone环境.由于您的"目标设备系列",此值会自动写入Info.plist.如果您认为自己已将其设置为iPhone但仍在进行iPad构建,请检查您是否只为一个构建配置设置了它.如果您想要真正自信,请查看生产的应用包中的Info.plist.
  2. 只有一个二进制文件可以在任一设备上正确启动.
  3. 只是不要瞄准iPad.


jv4*_*v42 9

我假设您真正想要的是删除"通用"功能,并将其设为iPhone应用程序.

在Xcode中,转到Project => Edit Project Settings => Build.

搜索通用或"目标设备系列".

选择iPhone.

再见iPad.