防止 iPhone 应用在 iPad 上运行

14

我正在发布两个二进制文件; 一个是面向iPhone/iTouch,另一个是面向iPad的。但它们是同一个应用程序。

苹果是否会确保用户永远不会在iPad上收到iPhone版本的应用程序? 如果是,那么我就没有什么可担心的了;但如果不是,那么我就有问题了。

我提出这个问题的原因是iPhone应用程序在iPad上简单地无法正常工作,因为服务器知道它是一个iPad,并将向其提供iPad高清内容,而iPhone无法处理。 我宁愿不通过在iPad上运行iPhone应用程序来欺骗服务器发送虚假设备类型以接收正确的资源。

有什么建议吗?


1
为什么不让你的应用程序向服务器发送正确的设备类型呢?我认为苹果不希望有特定于平台的应用程序(即,他们希望任何应用程序都能在iPad和iPhone/Touch上运行)。 - Richard Marskell - Drackir
@Leifur,你的应用程序可能会被拒绝。我现在找不到任何信息,但是苹果现在希望应用程序有一个单一的通用二进制文件。 - Stephen Furlani
2
我相信一定有办法,因为像《愤怒的小鸟》这样的应用程序都有专门针对iPad的“HD”版本。 - James
2
为什么要发布两个二进制文件,而不是发布一个可以在两个设备上运行的文件呢? - ceejayoz
1
@Joe - 它们不是废话。被问到的是是否有可能防止iPad运行特定的应用程序,而不是是否可能构建一个针对iPhone的应用程序(但仍在兼容模式下运行于iPad上)。因此,指出苹果公司将拒绝这样做的应用程序并且正确解决问题的适当方法是在服务器端正确控制内容传递,完全是合法的。 - Brad Larson
谢谢大家提供的好答案。正确的做法是从服务器控制内容传递,这样服务器就知道请求来自iPhone还是iPad应用程序。我之所以不发布通用应用程序,主要是因为iPhone和iPad的资源不同,并且将iPad资源和控制器捆绑到iPhone应用程序中是浪费空间的。 - Leifur
4个回答

17

我找了很久,因为无法防止 iPhone 应用在 iPad 上加载。搜索了一下以了解原因,按照 @hotpaw2 的指示并在官方苹果商店规则中发现了这个:

Apple Store official rules excerpt - developer.apple.com

更新:

2.4.1 为确保人们充分利用您的应用程序,iPhone 应用程序应尽可能在 iPad 上运行。我们建议您考虑构建通用应用程序,以便客户可以在所有设备上使用它们。了解有关通用应用程序的更多信息。

https://developer.apple.com/app-store/review/guidelines/


4
如果是这种情况,WhatsApp 是如何做到的? - AceN
@AceNeerav看起来指南已经改变了。“2.4.1为确保人们充分利用您的应用程序,iPhone应用程序应尽可能在iPad上运行。我们鼓励您考虑构建通用应用程序,以便客户可以在所有设备上使用它们。了解有关通用应用程序的更多信息。” - ZShock

10

SDK和/或应用商店规则禁止您阻止 iPhone 应用在1X或2X缩放模式下在 iPad 上运行,除非在应用程序 plist 中列出了其他要求。众所周知,苹果的应用审核会在 iPad 上测试 iPhone 专用应用提交情况(除非有其他要求),如果应用无法正常运行,则会被拒绝。

其他要求(在应用程序的 plist 中列出的 UIRequiredDeviceCapabilities 下)可能包括您的应用需要电话功能(或健康应用等),这可能会在短期内有所帮助,但仍无法阻止应用在未来某些可能包含电话功能(和/或健康应用等)的iPad产品上运行。


请问您能否提供任何关于这个禁令的官方信息? - psergiocf
请在developer.apple.com上的App Store审核指南所需功能部分查看。 - hotpaw2
我对这个答案一无所知。请更简明扼要些。 - Philip Enc

5
实际上你可以。 在你的plist文件中添加telephony到UIRequiredDeviceCapabilities。但我真的不推荐这样做,因为过度使用此属性可能会导致被拒绝。
我认为你应该考虑在iPad上处理iPad版本和iPhone版本,使用第二个作为iPhone。另外,请记住,Retina iPad将在Retina分辨率下使用缩放的应用程序,而非Retina iPad将使用标准分辨率。这种行为可以通过越狱插件如RetinaPad和FullForce进行调整。

-5
在plist设置中,添加应用程序需要iPhone环境并将布尔值设置为YES

4
这并不会阻止 iPhone 应用在 iPad 上运行。 - jmstone617
5
错误。即使是仅适用于iPad的应用程序,此标志也设置为“YES”,因此这不会限制iOS应用在iPad上运行。 - jmstone617

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接